抓交通肇事犯
一、问题描述
一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同:丙是数学家,他说:四位的车号刚好是-一个整数的平方。请根据以上线索求出车号。
二、问题分析
车号一共有四位,设为abcd,前两位相等:a=b,后两位相等:c=d。但是后两位与前两位不相等,即b!=c。
又有条件:四位的车号刚好是-一个整数的平方。即找到b*1000+b*100+c*10+c==i*i;b和c是从0~9的个位数,i*i的范围是1000~9999,分两层循环即可,若条件成立即找到了。
三、代码实现
#include<iostream> #include<cmath> using namespace std; int main() { int a, b; for (a = 0; a < 10; a++) { for (b = 0; b < 10; b++) { double x = 1100.0 * a + 11.0 * b; int y = sqrt(x);//注意这里要把开根号的结果转化成整数,不然y*y==x是恒成立的 if (x >= 1000 && x <= 9999 &&y*y==x) { printf("%d%d%d%d\n", a, a, b, b); } } } return 0; }


浙公网安备 33010602011771号