题目:
一辆卡车违反交通规则,撞人后逃跑。现场有3人目击事件,但没有记住车牌号,只记住了车号的一些特征。
甲说:“牌照前两位数字是相同的”,乙说:“牌照的后两位数字是相同的,但与前两位不同”,丙是为数学家,他说:“4位车号正好是一个整数的平方”。请根据以上线索求出车号。
解析:
设 i、j,车号k=i*1000+i*100+j*10+j,i和j取值范围 0~9,整数m的平方 = k,所以穷举i 、j,判断
是否等于m^2, k为四位数,m取值从31开始,限制条件为 m*m <= k
逻辑:
for循环加if判断打印
#include <stdio.h>
int main()
{int i = 0; //前两位int j = 0; //后两位int k = 0; //车牌号int m = 0; //整数for (i = 0; i <= 9; i++){for (j = 0; j <= 9; j++){if (i != j){k = i * 1000 + i * 100 + j * 10 + j;for (m = 31; m * m <= k; m++){if (m * m == k){printf("车牌号:%d, 整数:%d\n", k, m);}}}}}return 0;
}