鱼C论坛

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

斐波那契迭代算法,还能优化吗

[复制链接]
发表于 2018-9-14 22:47:44 | 显示全部楼层 |阅读模式

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

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

x
  1. def fab(s="sequence"):
  2.     a1 = a2 = a3 = 1
  3. # 加入a3是为了防止输入1和2时报错
  4.     if s < 1:
  5.         print("输入错误")
  6.         return -1
  7.         # 用return-1返回到定义域外,终止计算
  8.     if 1 <= s <= 2:
  9.         print("第%d项数是:1" % s)
  10.         return -1
  11.         # 同上
  12.     while s > 2:
  13.         a3 = a1+a2
  14.         a1 = a2
  15.         a2 = a3
  16.         s -= 1
  17.     return a3
  18. # 当n>2时,进入while循环,直到n<=2


  19. sequence = int(input("输入计算项:"))
  20. # 定义项
  21. result = fab(sequence)
  22. # 结果计算
  23. if result != -1:
  24.     print("第%d项数是:%d" % (sequence, result))
  25. # 注意%后面的参数如果有多个,要加"()",中间用","隔开
复制代码


前两天写的,虽然正常运行,但现在看着总有点别扭,还能稍微优化一下吗,在不加入任何新方法的基础上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-14 23:16:53 From FishC Mobile | 显示全部楼层
  1. def feb(n):
  2.         a,b = 0,1
  3.         while b<n:
  4.                 print(b)
  5.                 a,b=b,a+b
  6.         return a
  7. print(feb(500))
复制代码

原理相同,稍作修改就可以达到你的函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 15:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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