本文目錄一覽:
C語言進階:求斐波那契數列
工具/材料
visual studio
01
求斐波那契數列有兩種思路:循環與遞歸。我們首先來看循環的方式。為了與實際下標對應,我設置數組第一項為0。
02
對索引i的值進行判斷:i==1,則令a[i]=1。否則a[i]=a[i-1]+a[i-2];
03
然後再添加一個列印函數,只需要列印第1-n項即可。
04
編寫測試函數,用n=5與n=10測試,代碼與結果如下:
05
在這裡,我寫出求第n項的函數,接下來只需要添加一個外函數就可以求出。
06
接下來,測試n=5與n=10,即依次調用遞歸函數計算每一個值。
07
運行的結果如下,與之前的循環一致。
斐波那契數列 c語言
#include stdio.h
int fn(int a)
{
if (a==1)
return 1;
else
{
if (a==2)
return 2;
else
return fn(a-1)+fn(a-2);
}
}
void main ()
{
int i;
FILE *fp;
fp=fopen(“e:\\jieguo.txt”,”w”); // 保存的路徑,可以該。
for (i=1;i=50;i++)
fprintf(fp,”%d:%d\n”,i,fn(i));
fclose(fp);
}
注意: 程序運行的有點慢,要等一會兒, 你可以把 50改成 10 ,就能看見運行的結果了
在E盤的jieguo.txt中。
c語言.計算斐波那契數列的前n項和(s),四種方法?
方法2:
#include stdlib.h
#include stdio.h
int Fibon1(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return Fibon1(n – 1) + Fibon1(n – 2);
}
}
int main()
{
int n = 0;
int m=0;
int ret = 0;
printf(“請輸入要計算的斐波那契數列的前N項總數:”);
scanf(“%d”, n);
m=n;
do
{
ret += Fibon1(n);
n–;
} while (n0);
printf(“前%d項目和ret=%d”, m,ret);
getchar();
getchar();
return 0;
}
運行結果:
方法4:
#include stdlib.h
#include stdio.h
int Fibon1(int n);
int main()
{
int n = 0;
int m=0;
int ret = 0;
printf(“請輸入要計算的斐波那契數列的前N項總數:”);
scanf(“%d”, n);
m=n;
do
{
ret += Fibon1(n);
n–;
} while (n0);
printf(“前%d項目和ret=%d”, m,ret);
getchar();
getchar();
return 0;
}
int Fibon1(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return Fibon1(n – 1) + Fibon1(n – 2);
}
}
運行結果:
用c語言計算fibonacci數列的前50項和
#include”stdio.h”
intmain(){
longintf1,f2,i;
f1=1;f2=1;//賦初始值
for(i=1;i=20;i++){//循環20次,一次兩個,結果為前50項
printf(“%12d%12d”,f1,f2);//輸出兩項
f1=f1+f2;f2=f2+f1;//計算下面兩項
if(i%2==0)//一行四個好看用
printf(“\n”);
}
return0;
}
擴展資料
C語言程序Fibonacci數列計算兔子:
#includestdio.h
#defineYEAR12
intmain()
{
intf[YEAR+1]={0,1,2};//1月和2月兔子對數分別初始化為1,2,不使用f[0]
intmonth;
for(month=3;month=YEAR;month++)//從3月份開始計算每個月總兔數
{
f[month]=f[month-1]+f[month-2];
}
for(month=1;month=YEAR;month++)//輸出12個月的總兔對數
{
printf(“%d\t”,f[month]);
}
printf(“\nsum=%d\n”,f[YEAR]);//輸出年末的兔子總數
return0;
}
求用C語言表達斐波那契數列
#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);
}
波那契數列,又稱黃金分割數列,指的是這樣一個數列: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*)在現代物理、准晶體結構、化學等領域,斐波納契數列都有直接的應用,為此,美國數學會從1963起出版了以《斐波納契數列季刊》為名的一份數學雜誌,用於專門刊載這方面的研究成果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256726.html