您的位置:首页 > 其它

【第三届蓝桥杯】古堡算式

2017-11-15 14:09 411 查看
题目:古堡算式

    

    福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:

    ABCDE * ? = EDCBA

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

    华生:“我猜也是!”

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

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

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

    答案写在“解答.txt”中,不要写在这里!
(本题5分) 

答案:21978

C++代码:

#include <iostream>
using namespace std;

bool isOk(int n, int *v) {
int s[10] = {0};
for(int i = 0; i < 5; i++) {
if(s[v[i]]) //如果该数重复出现了,就可以直接返回false
return false;
s[v[i]] = 1; // 已出现过的数做标记
}
return true;
}

int getNum(int *v) {
int s = 0;
for(int i = 0; i < 5; i++)
s = s*10+v[i]; //逆序组合该数
return s;
}

int main() {
int i, j, a, b, v[5] = {0};
for(i = 12345; i <= 98765; i++) {
for(a = 0, b = 1; a <= 5; a++, b *= 10)
v[a] = i/b%10;
if(isOk(i, v))
for(int j = 2; j < 9; j++)
if(i*j == getNum(v))
cout << i;
}

return 0;
}

第三届蓝桥杯部分试题与答案
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: