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

如下图所示。在七角星的 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博客

理解中,,,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值