福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
/*暴力求解法*/
#include <stdio.h>
int main(void)
{
int x,y,k;
for(x=10000;x<100000;x++) /*五位数*/
{
int a=x/10000;
int b=x%10000/1000;
int c=x%1000/100;
int d=x%100/10;
int e=x%10; /*提取出各位*/
if(a==b || a==c || a==d || a==e || b==c || b==d || b==e
|| c==d || c==e || d==e) /*各位不相同*/
continue;
y = e * 10000 + d * 1000 + c * 100 + b * 10 + a;
for(k=1;k<10;k++)
if(x*k==y)
printf("%d*%d=%d\n",x,k,y);
}
return 0;
}
#include<stdio.h>
void main(){
int k,t1 ,t;
for(k=10234;k<=98765;k++) /*各位不相同的五位数最小为10234,*/
{
int flag[10]={0};
t=k;
t1=0;
while(t)
{
if(flag[t%10])
break ;
flag[t%10] = 1 ;
t1 = t1*10 + t%10 ;
t /= 10 ;
}
if( t==0 && t1%k==0)
{
printf("%d * %d = %d\n",k,t1/k,t1);
}
}
}
1万+

被折叠的 条评论
为什么被折叠?



