藍橋python 方格填數 2016 第六題

2021-10-10 07:50:33 字數 2997 閱讀 9556

【題目描述】

如下的 10 個格仔

填入 0~9 的數字。要求:連續的兩個數字不能相鄰。 (左右、上下、對角都算相鄰), 一共有多少種可能的填數方案?

請填寫表示方案數目的整數。 注意:你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。

和大家說下我的思路吧。我反正能不動腦子,能暴力就暴力破解!

判斷的話因為只有是個框框,那就乙個框框判斷他的周圍是否有相鄰數字的,若全部都沒有,則count加1

##方格填數

import itertools

a=[i for i in

range(10

)]x=list

(itertools.permutations(a,10)

)count=

0for i in x:

flag=

false

ifabs

(i[0

]-i[4]

)==1or

abs(i[0]

-i[3])

==1orabs

(i[0

]-i[5]

)==1or

abs(i[0]

-i[1])

==1: flag=

true

ifabs

(i[1

]-i[0]

)==1or

abs(i[1]

-i[2])

==1orabs

(i[1

]-i[5]

)==1or

abs(i[1]

-i[4])

==1orabs

(i[1

]-i[6]

)==1:

flag=

true

ifabs

(i[2

]-i[1]

)==1or

abs(i[5]

-i[2])

==1orabs

(i[2

]-i[6]

)==1:

flag=

true

ifabs

(i[3

]-i[0]

)==1or

abs(i[3]

-i[4])

==1orabs

(i[3

]-i[8]

)==1or

abs(i[3]

-i[7])

==1: flag=

true

ifabs

(i[4

]-i[0]

)==1or

abs(i[4]

-i[3])

==1orabs

(i[4

]-i[7]

)==1or

abs(i[8]

-i[4])

==1orabs

(i[4

]-i[9]

)==1or

abs(i[5]

-i[4])

==1orabs

(i[4

]-i[1]

)==1:

flag=

true

ifabs

(i[5

]-i[1]

)==1or

abs(i[5]

-i[0])

==1orabs

(i[5

]-i[4]

)==1or

abs(i[5]

-i[8])

==1orabs

(i[5

]-i[9]

)==1or

abs(i[5]

-i[6])

==1orabs

(i[5

]-i[2]

)==1:

flag=

true

ifabs

(i[6

]-i[2]

)==1or

abs(i[6]

-i[1])

==1orabs

(i[6

]-i[5]

)==1or

abs(i[6]

-i[9])

==1: flag=

true

ifabs

(i[7

]-i[3]

)==1or

abs(i[7]

-i[4])

==1orabs

(i[7

]-i[8]

)==1:

flag=

true

ifabs

(i[8

]-i[3]

)==1or

abs(i[8]

-i[4])

==1orabs

(i[8

]-i[5]

)==1or

abs(i[8]

-i[7])

==1orabs

(i[8

]-i[9]

)==1:

flag=

true

ifabs

(i[9

]-i[8]

)==1or

abs(i[9]

-i[4])

==1orabs

(i[9

]-i[5]

)==1or

abs(i[9]

-i[6])

==1: flag=

true

ifnot flag:

count+=

1print

(count)

答案為158

藍橋杯 方格填數

方格填數 如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。include include in...

方格填數 藍橋杯

如下的10個格仔 如果顯示有問題,也可以參看 圖1.jpg 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?請填寫表示方案數目的整數。注意 你提交的應該是乙個整數,不要填寫任何多餘的內容或說明性文字。解 可以直接用全排列的方法解決,但是用dfs ...

藍橋杯 方格填數

方格填數 如下的10個格仔 填入0 9的數字。要求 連續的兩個數字不能相鄰。左右 上下 對角都算相鄰 一共有多少種可能的填數方案?答案 解題思路 題目應該是要求0 9是不重複的。那麼我想通過a 10 將0 9進行全排列,然後將值賦給二維陣列m 3 4 從而m記錄每個方格的數字。我只要寫判斷語句就行了...