一辆卡车违反交通规则,撞人后逃跑。现场有三个人目击该事件,但没记住车号, 只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家:四位车牌号码刚好是一个整数的平方。请根据以上线索求出车牌号码。
用了强解的方式登出最终结果
#include<stdio.h>
int main()
{
int i,j,k,temp;
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
{
if(i!=j)
{
k=1000*i+100*i+10*j+j;
for(temp=31;temp<=99;temp++)
if(temp*temp==k)
printf("车牌号码为: %d\n",k);
}
}
}
但是这种方法在找到相应牌号后还继续,这会浪费计算资源,于是我们可以通过添加break的方式来改进一下代码。
#include<stdio.h>
int main()
{
int i,j,k,temp,flag=0;
for(i=0;i<=9;i++)
{
if(flag) break;
for(j=0;j<=9;j++)
{
if(flag) break;
if(i!=j)
{
k=1000*i+100*i+10*j+j;
for(temp=31;temp<=99;temp++)
if(temp*temp==k)
printf("车牌号码为: %d\n",k);
flag=1;
break;
}
}
}
}