您的位置:首页 > 其它

古堡算式

2014-02-01 20:32 239 查看
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:

ABCDE * ? = EDCBA

他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”

华生:“我猜也是!”

于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把 ABCDE 所代表的数字写出来。

答案写在“解答.txt”中,不要写在这里

思路:1穷举,数都不一样,全排列的思想

思路2:从10000 ~ 99999找合适的

代码:

#include<stdio.h>
//int mark[10];
int num[10];
int judge(int a){
int i, b = 0;
for(i = 0; i <= 4; i++){//将逆置的每一位相加
b = b * 10 + num[i];
}
if(b % a == 0)
return 1;
return 0;
}
int main()
{
//freopen("2.txt", "w", stdout);
int a, i, j, k, flag;
for(i = 10000; i <= 99999; i++){
a = i;
flag = 0;
for(j = 0; j < 5; j++){
num[j] = a % 10;//取个位
a = a / 10;//去掉个位,去前面的
for(k = 0; k < j; k++){
if(num[k] == num[j]){//数字都是不能重复的
flag = 1;
break;
}
}//for
if(flag == 1){//跳出二重循环
break;
}
}//for
if(flag == 1)
continue;
else{//说明每一位都是不重复的
if(judge(i))
printf("%d\n",i);
}

}//for
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: