【蓝桥杯】2016初赛 方格填数

题目描述

如下的10个格子,填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)一共有多少种可能的填数方案?
在这里插入图片描述

输出

请填写表示方案数目的整数。

老暴力了,我称之为V暴算法

a = [0]*10
summ=0
for x1 in range(10):
    a[x1]=1
    for x2 in range(10):
        if a[x2]==0 and abs(x2-x1)!=1:
            a[x2]=1
            for x3 in range(10):
                if a[x3]==0 and abs(x2-x3)!=1:
                    a[x3]=1
                    for x4 in range(10):
                        if a[x4]==0 and abs(x4-x1)!=1:
                            a[x4]=1
                            for x5 in range(10):
                                if a[x5]==0 and abs(x5-x4)!=1 and abs(x5-x1)!=1 and abs(x2-x5)!=1:
                                    a[x5]=1
                                    for x6 in range(10):
                                        if a[x6]==0 and abs(x6-x1)!=1 and abs(x2-x6)!=1 and abs(x6-x3)!=1 and abs(x6-x5)!=1:
                                            a[x6]=1
                                            for x7 in range(10):
                                                if a[x7]==0 and abs(x2-x7)!=1 and abs(x7-x3)!=1 and abs(x7-x6)!=1:
                                                    a[x7]=1
                                                    for x8 in range(10):
                                                        if a[x8]==0 and abs(x8-x4)!=1 and abs(x8-x5)!=1:
                                                            a[x8]=1
                                                            for x9 in range(10):
                                                                if a[x9]==0 and abs(x9-x4)!=1 and abs(x9-x5)!=1 and abs(x9-x6)!=1 and abs(x9-x8)!=1:
                                                                    a[x9]=1
                                                                    for x10 in range(10):
                                                                        if a[x10]==0 and abs(x10-x5)!=1 and abs(x10-x6)!=1 and abs(x10-x7)!=1 and abs(x10-x9)!=1:
                                                                            a[x10]=1
                                                                            summ+=1
                                                                            a[x10]=0
                                                                    a[x9]=0
                                                            a[x8]=0
                                                    a[x7]=0
                                            a[x6]=0
                                    a[x5]=0
                            a[x4]=0
                    a[x3]=0
            a[x2]=0
    a[x1]=0
print(summ)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值