#include<stdio.h>
void main()
{
int a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
for(a1=0;a1<10;a1++)
for(a2=0;a2<10;a2++)
if(a2!=a1)
for(a3=0;a3<10;a3++)
if(a3!=a2&&a3!=a1)
for(a4=0;a4<10;a4++)
if(a4!=a3&&a4!=a2&&a4!=a1)
for(a5=0;a5<10;a5++)
if(a5!=a4&&a5!=a3&&a5!=a2&&a5!=a1)
for(a6=0;a6<10;a6++)
if(a6!=a5&&a6!=a4&&a6!=a3&&a6!=a2&&a6!=a1)
for(a7=0;a7<10;a7++)
if(a7!=a6&&a7!=a5&&a7!=a4&&a7!=a3&&a7!=a2&&a7!=a1)
for(a8=0;a8<10;a8++)
if(a8!=a7&&a8!=a6&&a8!=a5&&a8!=a4&&a8!=a3&&a8!=a2&&a8!=a1)
for(a9=0;a9<10;a9++)
if(a9!=a8&&a9!=a7&&a9!=a6&&a9!=a5&&a9!=a4&&a9!=a3&&a9!=a2&&a9!=a1)
for(a10=0;a10<10;a10++)
if(a10!=a9&&a10!=a8&&a10!=a7&&a10!=a6&&a10!=a5&&a10!=a4&&a10!=a3&&a10!=a2&&a10!=a1)
if(a1+a2*10+a3+a4*100+a5*10+a6==a7*1000+a8*100+a9*10+a10)
printf("%d+%d%d+%d%d%d=%d%d%d%d\n",a1,a2,a3,a4,a5,a6,a7,a8,a9,a10);
}
结果
孩子已经算出得数了,相当于蒙出来的~~可是没有思路,您能写出解题过程么~?
追答行,首先,有三位数的相加,得到四位数,说明结果的千位肯定是1,因为即便999相加也得不出2000多;所以结果千位是1
再看结果的百位,1,2肯定不行,只能是0了
嗯,谢谢您~~继续
追答行,首先,有三位数的相加,得到四位数,说明结果的千位肯定是1,因为即便999相加也得不出2000多;所以结果千位是1
再看结果的百位,1,2肯定不行,只能是0了
此时,百位需要进位才能得1000多,所以要开始假设三位数的百位是9,那么个位数即便最小的相加是:2+3+4=9,而9已经存在了,不行!所以各位数相加也要向前进位;所以就要看十位的相加了:8+9肯定不行,重复了;7+8=15,加上进的位是16,也就是7,8,6,可以!这样推,答案不是唯一的,关键的是百位数!