鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: 冬雪雪冬

[技术交流] 小练习:20160509 找出以100万以下的数字开始的最长序列

[复制链接]
发表于 2016-5-16 22:00:11 | 显示全部楼层
本帖最后由 挥舞乾坤 于 2016-5-16 22:03 编辑
teenymis 发表于 2016-5-12 10:17
刚开始学习,弄了半天。


用递归思路不错,不过时间有些久,改进了一下
def ff(n, c=1):
    if n in addict:
        c += addict[n] - 1
        return c
    if n == 1:
        return c
    if n % 2 == 0:
        return ff(n//2, c+1)
    else:
        return ff(n*3+1, c+1)
    
addict = {}
for i in range(1,1000000):
    addict[i] = ff(i)

print(max(addict.items(), key=lambda x:x[1]))

还有下次发帖最好直接贴代码,我还得对着你的图片敲一遍代码,不知道版主有没有这个耐心
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 10:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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