翻书问题

笔试过程中遇到翻书问题:有81本书编号为1-81,起初书都是打开的。现在从序号2开始直至序号81,对书做如下的操作:凡是该序号倍数的书,则从当前状态变为相反状态(比如打开--->合上 或  合上-->打开),请问最后剩下多少本书?

利用python编写如下的代码即可求得结果:

import sys

if __name__ == '__main__':

 nBook=[]
 for i in range(0,81):
    nBook.append(0)          #记录书的初始状态0表示未翻,1表示合上

 Flip_Num=2
 while (Flip_Num<82):
     for num in range(Flip_Num,82,Flip_Num):
        if nBook[num-1]==0:
            nBook[num-1]=1
        else:
            nBook[num-1]=0
     Flip_Num=Flip_Num+1

 for x in range(0,81):
     if nBook[x]==0:
         print x+1
         print '\n'

相应的数学解释:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值