方格填数
方格填数
标题:方格填数
在2行5列的格子中填入1到10的数字。
要求:
相邻的格子中的数,右边的大于左边的,下边的大于上边的。
如【图1.png】所示的2种,就是合格的填法。
请你计算一共有多少种可能的方案。
请提交该整数,不要填写任何多余的内容(例如:说明性文字)。
思路
将其看做一维数组,每个位置代表一个数字
def ad(a, b, k):
if len(a) == 0:
if b[0]<b[1]<b[2]<b[3]<b[4] and b[5]<b[6]<b[7]<b[8]<b[9] and b[0]<b[5] and b[1]<b[6] and b[2]<b[7] and b[3]<b[8] and b[4]<b[9]:
k += 1
return k
for i in range(len(a)):
b.append(a[i])
d = a.pop(i)
k = ad(a, b, k)
a.insert(i, d)
b.pop(-1)
return k
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = []
k = ad(a, b, 0)
print(k)