0
点赞
收藏
分享

微信扫一扫

【思特奇杯·云上蓝桥-算法训练营】第1周:七星填数

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博客

理解中,,,

举报

相关推荐

0 条评论