福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
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;
}