古堡算式

福爾摩斯到某古堡探險,看到門上寫着一個奇怪的算式:


    ABCDE * ? = EDCBA


    他對華生說:“ABCDE應該代表不同的數字,問號也代表某個數字!”


    華生:“我猜也是!”


    於是,兩人沉默了好久,還是沒有算出合適的結果來。


    請你利用計算機的優勢,找到破解的答案。


    把 ABCDE 所代表的數字寫出來。


    答案寫在“解答.txt”中,不要寫在這裏


思路:1窮舉,數都不一樣,全排列的思想

思路2:從10000 ~ 99999找合適的

代碼:

#include<stdio.h>
//int mark[10];
int num[10];
int judge(int a){
	int i, b = 0;
	for(i = 0; i <= 4; i++){//將逆置的每一位相加
		b = b * 10 + num[i];
	}
	if(b % a == 0)
		return 1;
	return 0;
}
int main()
{
	//freopen("2.txt", "w", stdout);
	int a, i, j, k, flag;
	for(i = 10000; i <= 99999; i++){
		a = i;
		flag = 0;
		for(j = 0; j < 5; j++){
			num[j] = a % 10;//取個位
			a = a / 10;//去掉個位,去前面的
			for(k = 0; k < j; k++){
				if(num[k] == num[j]){//數字都是不能重複的
					flag = 1;
					break;
				}
			}//for
			if(flag == 1){//跳出二重循環
				break;
			}
		}//for
		if(flag == 1)
			continue;
		else{//說明每一位都是不重複的
			if(judge(i))
				printf("%d\n",i);
		}
	
	}//for
	return 0;
}



發佈了84 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章