中国象棋将帅问题----《编程之美》读书笔记

首先将问题简化为:

A在d10,d9,d8  则B可以在e3,e2,e1,f1,f2,f3.

A在e10,e9,e8 则B可以在d3,d2,d1,f1,f2,f3

A在f10,f9,f8  则B可以在e3,e2,e1,d3,d2,d1

再次简化为:

把A,B的位置用1——9来表示。

那A   d10  e10  f10

         d9    e9    f9

         d8    e8    f8

对应:

         7    8    9

         4    5    6

         1      2     3


那B

       d3    e3    f3

       d2    e2    f2

        d1    e1    f1

对应:

       7       8       9

        4       5       6

        1       2        3


这个时候需要实现的程序是:

符合条件的输出:

A                     B

1或4或7        2,5,8,3,6,9

2或5或8              1,4,7,3,6,9

3或6或9              1,4,7,2,5,8

 

不符合条件的输出:

A                     B

1                     1,4,7

4                      1,4,7

7                      1,4,7

2                      2,5,8

。。。。。。。。。

满足以下两个条件:

A从1-9嵌套B循环1-9

A与B的数据 相隔为3 可以用%3做为区分。


程序:python

 while i > 0:
     i= i - 1
     if i/9%3 == i%9%3 :
             pass
     else:
             print "A= %d ,B = %d" %(i/9+1, i%9+1)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值