1. 程式人生 > >第六屆藍橋杯【省賽試題3】三羊獻瑞

第六屆藍橋杯【省賽試題3】三羊獻瑞

題目描述:

觀察下面的加法算式:  


其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。  
請你填寫“三羊獻瑞”所代表的4位數字(答案唯一),不要填寫任何多餘內容。

題目答案:

1085 

題目思路:

題目用8個不同的漢字來代表八個不同的數字(0-9的任意一位數字),容易想要0-9的全排列,規定每個文字代表一個數字即可,其中,詳,三不能為0;如果不會用全排列,可以巢狀一堆for迴圈,進行判斷。這裡給出程式碼進行參考:

題目程式碼:

#include<iostream>
#include<algorithm>
using namespace std;
int a[10];
int main(){
	//初始化數字0-9 
	for(int i=0 ;i<10 ;i++)a[i]=i;	
	do{
		if(!a[7]||!a[0])continue;
		int x = a[7]*1000+a[3]*100+a[5]*10+a[6];
		int y = a[0]*1000+a[1]*100+a[2]*10+a[3];
		int z = a[0]*10000+a[1]*1000+a[5]*100+a[3]*10+a[4];
		//條件判斷 
		if(z==(x+y)){
			cout<<y<<endl; 
			break;
		}	
	}while(next_permutation(a,a+10));
	return 0;
}