1. 程式人生 > >藍橋杯 三樣獻瑞

藍橋杯 三樣獻瑞


三羊獻瑞

觀察下面的加法算式:

      祥 瑞生輝

  +   三羊獻瑞

-------------------

   三 羊生瑞氣

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

請你填寫“三羊獻瑞”所代表的4位數字

1.列舉

#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int main()
{
	int xiang,rui,sheng,hui,san,yang,xian,qi,x,y,z;
	 for (xiang=1;xiang<=9;xiang++)
	 for (rui=0;rui<=9;rui++)
	 {
	 	if (rui==xiang) continue;
	 	for (sheng=0;sheng<=9;sheng++)
	 	{
	 		if (sheng==xiang||sheng==rui) continue;
	 		for (hui=0;hui<=9;hui++)
	 		{
	 			if (hui==sheng||hui==rui||hui==xiang)continue;
	 			for (san=1;san<=9;san++)
	 			{
	 				if (san==hui||san==sheng||san==rui||san==xiang) continue;
	 				for (yang=0;yang<+9;yang++)
	 				{
	 					if (yang==san||yang==hui||yang==sheng||yang==rui||yang==xiang)continue;
	 					for (xian=1;xian<=9;xian++)
	 					{
	 						if (xian==san||xian==hui||xian==sheng||xian==rui||xian==xiang||xian==yang)continue;
	 						for (qi=1;qi<=9;qi++)
	 						{
	 							if (qi==san||qi==hui||qi==sheng||qi==rui||qi==xiang||qi==yang||qi==xian)continue;
	 							x=xiang*1000+rui*100+sheng*10+hui;
	 							y=san*1000+yang*100+xian*10+rui;
	 							z=san*10000+yang*1000+sheng*100+rui*10+qi;
	 							if (x+y==z)
	 							{
	 								printf("%d%d%d%d + %d%d%d%d = %d%d%d%d%d\n",xiang,rui,sheng,hui,san,yang,xian,rui,san,yang,sheng,rui,qi);
								 }
							 }
						 }
					 }
				 }
			 }
		 }
	 }
	return 0;
}
2.DFS
#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int a[8]={0};//分別表示8個不同的字
int v[8]={0};//標記
int js()
{
    int x,y,z;
    x=a[0]*1000+a[1]*100+a[2]*10+a[3];
    y=a[4]*1000+a[5]*100+a[6]*10+a[1];
    z=a[4]*10000+a[5]*1000+a[2]*100+a[1]*10+a[7];
    if (x+y==z)
     return 1;
     return 0;
    
}
void dfs(int n)
{
    int i;
    for (i=0;i<=9;i++)
    {
        if (!v[i])
        {
            v[i]=1;
            if (n!=0&&n!=4)
              a[n]=i;
            else if ((n==0||n==4)&&i!=0)
              a[n]=i;
            if (n<7)
            dfs(n+1);
            else
              {
                  if (js())
                   printf("%d%d%d%d + %d%d%d%d = %d%d%d%d%d\n",a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[1],a[4],a[5],a[2],a[1],a[7]);
              }
            v[i]=0;
        }
    }
}
int main()
{
    dfs(0);
    return 0;
}


相關推薦

藍橋 獻瑞

三羊獻瑞 觀察下面的加法算式:       祥 瑞生輝   +   三羊獻瑞 -------------------    三 羊生瑞氣 其中,相同的漢字代表相同的數字,不同的漢字代表不同的數

藍橋獻瑞題目

new eof 開始 arr 不同 i++ ray bool 觀察 今天開始做了做藍橋杯的題目,題目是三羊獻瑞,這道題目開始做,一點思路都沒有,但是硬著頭皮寫下去,用循環暴力求,java都運行了好久,好幾10秒,所以在藍橋杯上估計是超時了。運行出了幾個答案,再進行,排除,終

藍橋 獻瑞(重新排版)

問題描述: 觀察下面的加法算式: 祥 瑞 生 輝 + 三 羊 獻 瑞 ________________ 三 羊 生 瑞 氣 其中,相同的漢字代

第六屆藍橋獻瑞暴力

#include<iostream> using namespace std; int main()

藍橋 獻瑞

題目: 三羊獻瑞 觀察下面的加法算式:       祥 瑞 生 輝   +   三 羊 獻 瑞 -------------------    三 羊 生 瑞 氣 其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。 請你填寫“三羊獻瑞”所代表的4位數字(答案唯一),

第六屆藍橋 獻瑞

觀察下面的加法算式:      祥 瑞 生 輝  +   三 羊 獻 瑞-------------------   三 羊 生 瑞 氣其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。C程式如下

2015藍橋 獻瑞(回溯法dfs)

觀察下面的加法算式:      祥 瑞 生 輝 +    三 羊 獻 瑞  =三 羊 生 瑞 氣 其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。 請你填寫“三羊獻瑞”所代表的4位數字(答案

藍橋 -- 人年齡

三人年齡 三個神祕蒙面人來訪F博士。 博士詢問他們年齡時,他們說:我們中年齡最小的不超過19歲。我們3人年齡總和為70歲。且我們三人年齡的乘積是所有可能情況中最大的。 請幫助F博士計算他們的年齡,從小到大排列,用逗號分開。 #include <iostream> #inc

藍橋--部排序

標題:三部排序     一般的排序有許多經典演算法,如快速排序、希爾排序等。     但實際應用時,經常會或多或少有一些特殊的要求。我們沒必要套用那些經典演算法,可以根據實際情況建立更好的解法。     比如,對一個整型陣列中的數字進行分類排序:     使得負數都靠左端,

獻瑞——第六屆藍橋C語言B組(省賽)第

lan font oid 漢字 print ack size IV cnblogs 原創 三羊獻瑞 觀察下面的加法算式: 祥 瑞 生 輝 + 三 羊 獻 瑞 ------------------- 三 羊 生 瑞 氣 (如果有對齊問題,可以參看【圖1.jp

2015年藍橋省賽B組第3題--獻瑞 (暴力和深搜)

觀察下面的加法算式:       祥 瑞 生 輝   +   三 羊 獻 瑞 -------------------    三 羊 生 瑞 氣 其中,相同的漢字代表相同的數字,不同的漢字代表不同的數

藍橋獻瑞

三羊獻瑞觀察下面的加法算式:      祥 瑞 生 輝  +   三 羊 獻 瑞-------------------   三 羊 生 瑞 氣(如果有對齊問題,可以參看【圖1.jpg】)其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。請你填寫“三羊獻瑞”所代表的4位

第六屆 藍橋 c/c++ B組 省賽 (3)——獻瑞

三羊獻瑞觀察下面的加法算式:      祥 瑞 生 輝  +   三 羊 獻 瑞-------------------   三 羊 生 瑞 氣(如果有對齊問題,可以參看【圖1.jpg】)其中,相同的漢字

第六屆藍橋java 獻瑞

三羊獻瑞 觀察下面的加法算式:       祥 瑞 生 輝   +   三 羊 獻 瑞 -------------------    三 羊 生 瑞 氣 其中,相同的漢字代表相同的數字,不同的漢字代

獻瑞藍橋2015年第3題

3. 三羊獻瑞觀察下面的加法算式:      祥 瑞 生 輝  +   三 羊 獻 瑞-------------------   三 羊 生 瑞 氣(如果有對齊問題,可以參看【圖1.jpg】)其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。請你填寫“三羊獻瑞”所代表

2015年藍橋C/C++組B組第題:獻瑞

三羊獻瑞 觀察下面的加法算式: 祥 瑞 生 輝 + 三 羊 獻 瑞 三 羊 生 瑞 氣 (如果有對齊問題,可以參看【圖1.jpg】) 其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。 請你填寫“三羊獻瑞”所代表的4位

java第六屆藍橋獻瑞

public class Main{ public static void main(String[] args) { int a,b,c,d,e,f,g,h; // int m=a*1000+b*100+c*10+d; // int n=e*1000+f*100+g*10+b; for( a

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

題目描述: 觀察下面的加法算式:   其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。  請你填寫“三羊獻瑞”所代表的4位數字(答案唯一),不要填寫任何多餘內容。 題目答案: 1085 

藍橋B組C語言-獻瑞

問題描述: 觀察下面的加法算式:       祥 瑞 生 輝   +   三 羊 獻 瑞 -------------------    三 羊 生 瑞 氣 其中,相同的漢字代表相同的數字,不同

2015藍橋B組第題(獻瑞

三羊獻瑞 觀察下面的加法算式: 其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。 請你填寫“三羊獻瑞”所代表的4位數字(答案唯一),不要填寫任何多餘內容。 個人用的DFS搜尋,在0~9是個數字中搜索8個數字來滿足題目中要求的算式條件,最有去