福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 。他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”。华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把ABCDE所代表的数字写出来。
#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
for(a=1; a<10; a++) //第一位数不能为0
{
for(b=0; b<10; b++)
{
if(b==a) //确保每个数都不一样
continue;
for(c=0; c<10; c++)
{
if(c==a||c==b) //确保每个数都不一样
continue;
for(d=0; d<10; d++)
{
if(d==a||d==b||d==c) //确保每个数都不一样
continue;
for(e=1; e<10; e++) //第一位数不能为0
{
if(e==a||e==b||e==c||e==d) //确保每个数都不一样
continue;
for(f=2; f<10; f++) //由于不能为0而且左右等式两个数不可能相同,故从2开始
{
if(f==a||f==b||f==c||f==d||f==e) //确保每个数都不一样
continue;
if((a*10000+b*1000+c*100+d*10+e)*f==(e*10000+d*1000+c*100+b*10+a))
printf("%d %d %d %d %d\n",a,b,c,d,e);
}
}
}
}
}
}
return 0;
}