B.K. 发表于 2020-5-4 11:59

python输出斐波拉契数列的前n项求助,没摸明白不知道该怎那么填3

本帖最后由 B.K. 于 2020-5-4 12:28 编辑

这个形式没搞懂

w1572486371 发表于 2020-5-4 12:09

return 0;#递归终止条件
return 1;#递归终止条件
return fib(n-1) + fib(n-2);    #递归向下寻找

fib(i);#方法中调用,输出第i项

凌枫一族 发表于 2020-5-4 12:10

前两个值是固定的,所以程序里判断了下标0和1。从下标为2开始的每一项为前两项的和,所以这个是else

东方小童 发表于 2020-5-4 12:14

我也是刚学,你可以参考下,不足之处希望能提出来
num=int(input('输入一个正整数:'))
a=1
b=1
if num<=2:
    for i in range(num):
      print(a)
else:
    print(a,b)
    for i in range(3,num+1):
      sum=a+b
      a=b
      b=sum
      print(sum)

B.K. 发表于 2020-5-4 12:22

w1572486371 发表于 2020-5-4 12:09
return 0;#递归终止条件
return 1;#递归终止条件
return fib(n-1) + fib(n-2);    #递归向下寻找


嗯嗯,我参考参考,蟹蟹

B.K. 发表于 2020-5-4 12:23

东方小童 发表于 2020-5-4 12:14
我也是刚学,你可以参考下,不足之处希望能提出来
num=int(input('输入一个正整数:'))
a=1


嗯呢,我参考一下

B.K. 发表于 2020-5-4 12:28

w1572486371 发表于 2020-5-4 12:09
return 0;#递归终止条件
return 1;#递归终止条件
return fib(n-1) + fib(n-2);    #递归向下寻找


一开始没搞懂else后面那个,现在懂怎么用啦,蟹蟹指导

ymhld 发表于 2020-5-4 14:20

def fib(n):
        if n==0:
                return 0
        elif n==1:
                return 1
        else:
                return fib(n-1)+fib(n-2)
n =int(input ('正整数'))
if n>=0:
        for i in range(n):
                print (fib(i),end=" ")
else:
        print('输入数据有误')

南岸 发表于 2020-5-5 07:37

这个就是递归啊
页: [1]
查看完整版本: python输出斐波拉契数列的前n项求助,没摸明白不知道该怎那么填3