python编程求斐波那契数列前20项(python写一个函数,求斐波那契数

http://www.itjxue.com  2023-03-17 08:56  来源:未知  点击次数: 

python递归求斐波那契数列前10项

你好,很高兴为你解答。根据斐波那契数列F(n)=F(n-1)+F(n-2),当n=1和n=2时,F(n)=1,可以利用函数+if分支结构编写递归程序,求出斐波那契数列前10项。具体代码如下:

求斐波那契数列前10项

用python求斐波数列的前20项

斐波拉契数列的通项公式:

第2n+1项是:

1/√5〔

(√5+1)2??1/2

+(√5-1)2??1/2〕

第2n项是:

1/√5〔

(√5+1)2?/2

-(√5-1)2?/2〕

(n=0,1,2,3……)

其实此数列的前20项还是用递推方式比较容易:

0,1,1,2,3,5,

8,13,21,34,55,89,144,233,

377,610,987,

1597,2584,4181。

用Python输出斐波那契数列的前20项,要用递归和非递归两种方法?

?斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n=2,n∈N*)

编写程序,将斐波那契数列前20个数值按照每行4个排列输出

#includeiostream.h

void fibo()

{

int num[20]={1,1};

for(int i=2;i20;i++)

{

num[i]=num[i-1]+num[i-2];

}

for(int j=0;j20;j++)

{

if((j+1)%4==0)

{

coutnum[j]endl;

}

else

{

coutnum[j]",";

}

}

}

void main()

{

fibo();

}

Python 求斐波那契数列前20项和

定义:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)

方法一:用递归方法求出每一项

def?fib1(n):

????if?n?==?0:

????????return?0

????elif?n?==?1:

????????return?1

????else:

????????return?fib1(n?-?1)?+?fib1(n?-?2)

res?=?[]

for?i?in?range(21):

????res.append(fib1(i))

print?res

print?sum(res)

方法二:上面的方法,有很多重复计算,非常消耗性能,下面改进下:

known?=?{0:?0,?1:?1}

def?fib2(n):

????if?n?in?known:

????????return?known[n]

?

????res?=?fib2(n?-?1)?+?fib2(n?-?2)

????known[n]?=?res

????return?res

res?=?[]

for?i?in?range(21):

????res.append(fib2(i))

print?res

print?sum(res)

(责任编辑:IT教学网)

更多