方格填數
如下的10個格仔,
填入0~9的數字。要求:連續的兩個數字不能相鄰。
(左右、上下、對角都算相鄰)
一共有多少種可能的填數方案?
請填寫表示方案數目的整數。
注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。
flag陣列標誌數字是否已經填在方格中67
8int check(int a[4], int x, int y)//
檢查填在位置上的陣列是否和法,不合法返回0,914
if(y!=0)//
如果不是第一列,檢查前乙個數。
1518
if(x>0&&y<3)//
如果不是第一行,並且不是最後一列,檢查右上方
1922
if(x>0&&y>0)//
如果不是第一行,並且不是第一列,檢查左上方
2326
//在這說明,我們不需要檢查這個數後邊的所有數,因為後邊的數還沒填。以上都沒有不合法,說明這個數可以填在這個位置,返回1
27return1;
28}2930
void dfs(int a[4], int x, int
y)31
36for(int num = 0; num <= 9; num ++)
37if(!flag[num])
46 flag[num] = 0;//
num填在a[x][y]不合法,或者已經回退了,我們需要將num從方格中拿出來。47}
48}4950
51int
main()
52;//
把a[0][0]賦值乙個與0-9都不相鄰的數,方便檢查時候檢查條件判斷。
54 dfs(a, 0, 1);//
從a[0][1]開始填入數字。
55 cout<
56return0;
57 }
如果幫到你,麻煩給個
藍橋杯 第七屆C B組 方格填數
描述 方格填數 如下的10個格仔 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。思路 每個格和與它相鄰的格的差的絕對值都不能為0 第一格a...
第七屆藍橋杯省賽 方格填數
一 問題描述 二 題目型別 結果填空 三 解題思路及 這題。我丟進了題目閱讀理解的坑里!我以為每個格仔填0 9的數,還被隊友嘲笑,真 閱讀杯 微笑 所以題目就是求0 9這十個數字填進圖中十個方格的填數方案,要求連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 這沒什麼好思考的,乙個暴力破解完事兒!對...
藍橋杯第七屆第6題 方格填數
存粹做題感悟如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。可以暴力,也可以全排列或者dfs,...