鱼C论坛

 找回密码
 立即注册
查看: 787|回复: 1

[已解决]24讲课后-递归编写十进制转二进制

[复制链接]
发表于 2020-3-26 23:06:13 | 显示全部楼层 |阅读模式

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

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

x
代码如下,funIn的部分是递归吗?自己写的代码,看着总觉得跟小甲鱼举例的递归不太一样,但说不出哪里不一样:
def fun(x):
    a = []
    def funIn(): #内嵌函数,闭包
        nonlocal x #后面x //= 2改变了x的值,所以这里要定义为非局部变量
        if x <= 1:
            a.append(str(x % 2)) #改成str是为了后面可以用join把list变成str
        else:
            a.append(str(x % 2))
            x //= 2
            funIn() #递归funIn()
        return a
    b = funIn()
    b.reverse()
    c = ''.join(b) #利用join把list变成str
    return int(c)
最佳答案
2020-3-26 23:35:55
你这个也是递归,只要在函数内调用函数本身就算是递归。
但是,正常的递归应该是逐层深入,你这个只能算是多次调用同一函数。
给你两个链接,你看看吧。这里面有我写的好几个十进制转二进制的程序,有递归,也有迭代
第一个帖子
第二个帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-26 23:35:55 | 显示全部楼层    本楼为最佳答案   
你这个也是递归,只要在函数内调用函数本身就算是递归。
但是,正常的递归应该是逐层深入,你这个只能算是多次调用同一函数。
给你两个链接,你看看吧。这里面有我写的好几个十进制转二进制的程序,有递归,也有迭代
第一个帖子
第二个帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-24 22:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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