古堡算式蓝桥杯

欢迎访问我的新博客:http://www.milkcu.com/blog/

原文地址:http://www.milkcu.com/blog/archives/1366851360.html

简述

这是2012年蓝桥杯全国软件设计大预赛第2题,问题是求出字母对应的数字。

推荐链接:《2012蓝桥杯软件大赛预赛题目汇总》

题目描述

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

    ABCDE * ? = EDCBA

    他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
    华生:“我猜也是!”
    于是,两人沉默了好久,还是没有算出合适的结果来。

    请你利用计算机的优势,找到破解的答案。
    把 ABCDE 所代表的数字写出来。
    答案写在“解答.txt”中,不要写在这里!

分析

这种类型的题目最简单最直接的方法就是穷举法吧,虽然时间复杂度较大,但是在对性能没要求且基数不是特别大的情况下,肯定能得到答案。

源代码

# 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++){
			for(c = 0; c <= 9; c++){
				for(d = 0; d <= 9; d++){
					for(e = 0; e <= 9; e++){
						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 && a !=b && b != c && c != d && d != a && a != c && b != d){
								printf("%d %d %d %d %d\n", a, b, c, d, e);
							}
						}
					}
				}
			}
		}
	}
	printf("\nDone\n");
	return 0;
}

最后答案

ABCDE 所代表的数字为
1 0 9 8 9
2 1 9 7 8

更新

原代码存在错误,已更新。

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

(全文完)

原文地址:https://www.cnblogs.com/milkcu/p/3808933.html