如下图所示。在七角星的 14 个节点上填入 1 ~ 14的数字,不重复,不遗漏。 要求每条直线上的四个数字之和必须相等。
图中已经给出了 3 个数字。 请计算其它位置要填充的数字,答案唯一。
填好后,请输出绿色节点的 4 个数字(从左到右,用空格分开)。
import itertools
x = [i for i in range(1, 15)]
x.remove(6)
x.remove(11)
x.remove(14)
def check(a):# 这道题对数字的排序完全是自定义,每次比较是为了减少所需要的时间
num1 = a[0] + a[1] + a[2] + a[3]
num2 = 6 + a[1] + a[4] + 14
if num1 != num2:
return False
num3 = 6 + a[2] + a[5] + 11
if num2 != num3:
return False
num4 = a[3] + a[5] + a[7] + a[10]
if (num3 != num4):
return False
num5 = a[8] + a[9] + a[7] + 11
if (num4 != num5):
return False
num6 = a[6] + a[10] + a[8] + 14
if (num5 != num6):
return False
num7 = a[0] + a[4] + a[6] + a[9]
if (num6 != num7):
return False
return True
for i in itertools.permutations(x):
if check(i):
print(i)
for j in range(4):
print(i[j])
break
原文链接:蓝桥杯——七星填空(python)_Leosaf的博客-CSDN博客
理解中,,,