2012年第三届蓝桥杯C/C++程序设计本科B组省赛题目汇总:
http://blog.csdn.net/u014552756/article/details/50583827
古堡算式
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
思路:循环遍历每个字母可能的情况。
答案:21978
# include <stdio.h>
int main(void){
int a, b, c, d, e;
int x;
int left, right;
//left = a * 10000 + b * 1000 + c * 100 + d * 10 + e * 1;
//right = e * 10000 + d * 1000 + c * 100 + b * 10 + a * 1;
for(a = 0; a <= 9; a++){
for(b = 0; b <= 9; b++){
if(a == b) {
continue;
}
for(c = 0; c <= 9; c++){
if(c == a || c == b) {
continue;
}
for(d = 0; d <= 9; d++){
if(d == a || d == b || d == c) {
continue;
}
for(e = 0; e <= 9; e++){
if(e == a || e == b || e == c || e == d) {
continue;
}
for(x = 0; x <= 9; x++){
left = a * 10000 + b * 1000 + c * 100 + d * 10 + e * 1;
right = e * 10000 + d * 1000 + c * 100 + b * 10 + a * 1;
if(left * x == right){
printf("%d %d %d %d %d\n", a, b, c, d, e);
}
}
}
}
}
}
}
return 0;
}