#include
創(chuàng)新互聯(lián)公司專注于昆明企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。昆明網(wǎng)站建設(shè)公司,為昆明等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
#define
COL
5
//一行輸出5個
long
fibonacci(int
n)
{
//fibonacci函數(shù)的遞歸函數(shù)
if
(0==n||1==n)
{
//fibonacci函數(shù)遞歸的出口
return
1;
}
else
{
return
fibonacci(n-1)+fibonacci(n-2);
//反復(fù)遞歸自身函數(shù)直到碰到出口處再返回就能計算出第n項的值
}
}
int
main(void)
{
int
i,n;
n=
17;
printf("Fibonacci數(shù)列的前%d項\n",
n);
for
(i=0;
i
{
printf("%-10ld",fibonacci(i++));
//調(diào)用遞歸函數(shù)并且打印出返回值
if(i%COL==0)
{
//若對COL取余等于0就換行,也就是控制每行輸出多少個,
//而COL=10就是每行輸出10個
printf("\n");
}
}
printf("\n");
return
0;
}
斐波那契數(shù)列問題,做為學(xué)習(xí)一般都用遞歸來寫,默認(rèn)情況下都設(shè)置程序運行時默認(rèn)的??臻g大小為1MB,下面是遞歸調(diào)用的實例。
#includestdio.h
int?fibo(int?a)
{
if(a=2)
return?1;
else
return?fibo(a-1)+fibo(a-2);
}
int?main()
{
int?a;
while(scanf("%d",a)!=EOF)
printf("%d\n",fibo(a));
return?0;
}
#include
int
fib(int
n)//遞歸函數(shù)
{
//斐波那契數(shù)列算法
if(n==1||n==2)
return
1;
return
fib(n-1)+fib(n-2);
}
int
main()
{
int
n;
scanf("%d",n);
printf("%d\n",fib(n));
return
0;
}
#includestdio.h
int?fib(int?a);
main()
{
int?n;
scanf("%d",n);
fib(n);
}
int?fib(int?a)
{
int?b[100];
int?i;
b[0]=1;
b[1]=1;
for(i=2;i=a-1;i++)
b[i]=b[i-1]+b[i-2];
for(i=0;ia;i++)????//b[a]沒有被賦值,不能輸出它的值
{
printf("%d\t",b[i]);
if((i%4)==3)????//每四個換行,應(yīng)該是取余為3的時候打印換行符
printf("\n");???//打印換行符應(yīng)該在for循環(huán)里面
}
return?b[a];
}
#include stdio.h
main( ){
long f1,f2,f;
int i,n;
scanf("%d",n);
f1=f2=1;
if(n=2)
f=1;
else
for(i=3;i=n;i++){
f=f1+f2;
f1=f2;
f2=f;
}
printf("%ld\n",f);
}
波那契數(shù)列,又稱黃金分割數(shù)列,指的是這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、34、……在數(shù)學(xué)上,斐波納契數(shù)列以如下被以遞歸的方法定義:
F(0)=0,F(xiàn)(1)=1,F(xiàn)(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在現(xiàn)代物理、準(zhǔn)晶體結(jié)構(gòu)、化學(xué)等領(lǐng)域,斐波納契數(shù)列都有直接的應(yīng)用,為此,美國數(shù)學(xué)會從1963起出版了以《斐波納契數(shù)列季刊》為名的一份數(shù)學(xué)雜志,用于專門刊載這方面的研究成果。