1.问题描述
-辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号.
只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。
2.问题分析
按照题目的要求造出一个前两位数相同、后两位数相同且相互间又不同的4位整数.然后判断该整数是否是另一个整数的平方。即求一个四位数
3.算法设计
该题目是数值计算问题,求解不定方程。对于这种求解不定方程组的问题,一般采用穷举循环,首先设计双层循环穷举出所有由前两位数和后两位数组成的4位数车牌,然后在最内层穷举出所有平方后值为 4位数并且小于车牌号的数,最后判断该数是否与车牌相
等,若相等则打印车牌。
4.代码
#include<iostream>
using namespace std;
int main()
{
int i,a,b,c,d;
for(i = 32; i * i >= 1000 && i * i <= 9999;i++)
{
a = i * i / 1000;
b = (i * i / 100) % 10;
c = (i * i / 10) % 10;
d = i * i % 10;
if(a == b && c == d && a != c) cout << a << b << c << d;
}
return 0;
}