鱼C论坛

 找回密码
 立即注册
查看: 1395|回复: 3

[已解决]请教这个迭代如何解释

[复制链接]
发表于 2018-1-9 23:09:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def Bin(n):  
    temp = ''  
    if n:  
        temp = Bin(n//2)  
        temp += str(n%2)  
        return temp  
    else:  
        return temp         
  
num = int(input('请输入一个十进制数:'))  
print(num,'-->',Bin(num))

来源小甲鱼024视频

请问  temp = Bin(n//2)  
        temp += str(n%2)  
        return temp  
      这一部分
比如,num输入2时候,temp = Bin(2//2),而2//2=1,那么temp =Bin(1),那么2%2=0,所以return 10为结果?
   如果num输入4时候,temp = Bin(4//2),而4//2=2,那么temp =Bin(2),......????此后就不明白了

希望大神指导小白的我啊
最佳答案
2018-1-9 23:37:55
Bin(2):
temp=Bin(1),
temp += str(2%2)
Bin(1):
temp=Bin(0)="",
temp += str(1%2) = temp + '1' = '1'
所以Bin(1)为'1',从而Bin(2)为'10'.
Bin(4)也是这个原理。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-9 23:21:25 | 显示全部楼层
Bin(2),这个时候再调用Bin(),temp=Bin(1),再调用Bin(),temp=Bin(0),然后依次返回
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-9 23:37:55 | 显示全部楼层    本楼为最佳答案   
Bin(2):
temp=Bin(1),
temp += str(2%2)
Bin(1):
temp=Bin(0)="",
temp += str(1%2) = temp + '1' = '1'
所以Bin(1)为'1',从而Bin(2)为'10'.
Bin(4)也是这个原理。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-10 22:44:29 | 显示全部楼层
多谢,理解了,豁然开朗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-5 17:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表