鱼C论坛

 找回密码
 立即注册
查看: 2144|回复: 5

[已解决]斐波那契数列问题求助!

[复制链接]
发表于 2019-2-21 19:28:17 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 陌生的谜语 于 2019-2-22 08:41 编辑

def fab(n):
    n1 = 1
    n2 = 1
    n3 = 1
   
    if n < 1:
        print("输入代码有误!")
        return -1
        

    while n > 2:
        n3 = n2 + n1
        n1 = n2
        n2 = n3
        n -= 1
        
    return n3
fab(10)

# 题目中n3 = 1不写是不是也没有问题?

# 最初想的是for循环,请教各位大佬,如果这个语句用for循环要怎么写?

'''
题目中
n1 = n2
n2 = n3
两行代码调换下位置,为什么结果会变?
'''
'''
另外。如果用
n = 1 or n = 2
return 1
这种方式,用迭代能写出来吗?开始的想法不是n1,n2,n3,而是这种。
'''
最佳答案
2019-2-21 20:48:53
陌生的谜语 发表于 2019-2-21 20:41
你回答的前两个问题我明白了,第三个我想说的是
n = 1 or n = 2
return 1

不可以。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-2-21 20:31:26 | 显示全部楼层

回帖奖励 +5 鱼币

1. n3 不写没有问题。
2.两行代码换一下位置,即
  1. n2 = n3
  2. n1 = n2
复制代码
,最后n1和n2的值都等于n3的值,如果不交换位置,n1的值是n2的值,n2的值是n3的值。
如果你不明白,你得去了解一下程序执行顺序与pyhton变量赋值。
3. 没明白你的意思,用迭代写出什么来?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-2-21 20:41:23 | 显示全部楼层
°蓝鲤歌蓝 发表于 2019-2-21 20:31
1. n3 不写没有问题。
2.两行代码换一下位置,即,最后n1和n2的值都等于n3的值,如果不交换位置,n1的值是 ...

你回答的前两个问题我明白了,第三个我想说的是
n = 1 or n = 2
return 1
这种是小甲鱼课上的递归方式。
def fab(n):
    if n < 1:
        print("输入有误!")
    if n == 1 or n == 2:
        return 1
    if n > 2:
        return fab(n - 1) + fab(n - 2)
fab(5)
我想说如果不是
n1=1
n2=1
而是n = 1 or n = 2 然后用迭代方式,可以写出来吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-21 20:48:53 | 显示全部楼层    本楼为最佳答案   
陌生的谜语 发表于 2019-2-21 20:41
你回答的前两个问题我明白了,第三个我想说的是
n = 1 or n = 2
return 1

不可以。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-22 13:40:48 | 显示全部楼层

回帖奖励 +5 鱼币

划重点


递归。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-22 13:42:59 | 显示全部楼层
我觉得应该是n1 = 1 and n2 =1吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 23:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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