1. 程式人生 > 其它 >#2015藍橋杯-3.三羊獻瑞

#2015藍橋杯-3.三羊獻瑞

技術標籤:藍橋杯練習c語言

觀察下面的加法算式:

在這裡插入圖片描述

其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。

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

//一共用到了九個不同的數字 
#include<iostream>
#include<string>
using namespace std;
int main()
{
	for(int a = 1; a <= 9; a++)
		for(int b = 0; b <= 9; b++)
			if(a != b)
			for(int c = 0; c <= 9; c++)
				if(c != a && c != b)
				for(int d = 0; d <= 9; d++)
					if(d != a && d != b && d != c)///第一個數完畢 
					for(int e = 1; e <= 9; e++)
						if(e != a && e != b && e != c && e != d)
						for(int f = 0; f <= 9; f++)
							if(f != a && f != b && f != c && f != d && f != e)
							for(int g = 0; g <= 9; g++)
								if(g != a && g != b && g != c && g != d && g != e && g != f)
									for(int h = 0; h <= 9; h++)
										if(h != a && h == b && h != c && h != d && h != e && h != f && h != g)	
											for(int x = 0; x <= 9; x++)
												if(x != a && x != b && x != c && x != d && x != e && x != f && x != g && x != h)				
												{
													int A = a *1000 + b *100 + c *10 + d;
													int B = e *1000 + f *100 + g *10 + h;											
													int C = e *10000 + f *1000 + c *100 + b *10 + x;
													if(C == A + B)
													{
														printf("%d\n", B);
														printf("%d %d %d %d", e, f, g, b);
														return 0;
													}
												}			
	printf("沒有!"); 
	return 0;	
} 										temp = (a *1000 + b *100 + c *10 + d) + (e *1000 + f *100 +g *10 + b);
										if(temp/10000 == e && (temp%10000)/1000 == f && (temp/1000)/10 == g && (temp/10)%10 == b)
											printf("%d\n", temp);
									}					
		return 0;	
	}