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;
}