题目:
一辆卡车违反交通规则,撞人后逃跑。现场有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;
}