题目:一辆车撞人后逃跑,有三人目击现场,但都没有准确记住车牌,甲:牌照的前两位是相同的,乙:牌照的后两位是相同的,但与前两位不同,丙:四位的车号是一个整数的平方。求出车号。
设计:定义a,b表示前两位和后两位数字,a,b的范围都是0到9,a的for循环中嵌套b的for循环,最后在循环中进行条件判定,a不等于b,且a*1000+a*100+b*10+b是一个整数的平方,由于车牌是一个四位数,所以在用for循环判断是否是一个整数的平方需要将初始i赋值为31,因为30的平方不是四位数,且最高不超过99,因为100的平方是一个五位数。
#include<stdio.h>
int main()
{
int a,b,i,k;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
if(a!=b)
{
k=a*1000+a*100+b*10+b;
}
for(i=31;i<=99;i++)
{
if(k==i*i)
printf("%d %d",k,i);
}
}
}
return 0;
}