福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!
解题思路:1.要求ABCDE能被EDCBA整除
2.ABCDR不能相同
#include<iostream> #include<string> #include<cstdio> using namespace std; bool fun(char s[]) { for(int i = 0;i<5;i++) for(int j = i+1;j<5;j++) if(s[j] == s[i]) { return false; break; } return true; } int main() { char s[6]; int i,a,b,c,d,e,sum; for(i = 10000;i<100000;i++) { a = i % 10; b = i / 10 % 10; c = i / 100 % 10; d = i / 1000 % 10; e = i / 10000 % 10; sum = 10000*a + 1000*b + 100*c + 10*d + e; sprintf(s,"%d",sum); if(sum % i ==0 && fun(s)) { cout<<"i = "<<i<<endl; } } return 0; }