Ⅰ 在c語言中,如何利用數組求斐波那契數列的前20項
#include<stdio.h>
intmain()
inti,fib[20]={0,1};
for(i=2;i<20;i++)
fib[i]=fib[i-2]+fib[i-1];
printf("%d",fib[19]);return0;
#include<stdio.h>
void main()
{long sum=0;
long a[20];
int i;
a[0]=1;a[1]=1;
for(i=2;i<20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
sum=sum+a[i];
printf("%ld",sum);
}
數列與矩陣
對於斐波那契數列1、1、2、3、5、8、13、……。有如下定義
F(n)=F(n-1)+F(n-2)
F(1)=1
F(2)=1
對於以下矩陣乘法
F(n+1) = (1,1 ) (F(n),F(n-1))T
F(n) =(1,0 ) (F(n),F(n-1))T
它的運算就是右邊的矩陣 (1,1)乘以矩陣(F(n),F(n-1)),右邊的矩陣(1,0 ) 乘以矩陣(F(n),F(n-1)),得到:
F(n+1)=F(n)+F(n-1)
F(n)=F(n)
以上內容參考:網路-斐波那契數列
Ⅱ 用C語言求斐波那契數列第n項
#include<stdio.h>
//求斐波那契數列第n項
intfib(intn)
{
if(n==0||n==1)
return1;
else
return(fib(n-1)+fib(n-2));
}
intmain()
{
inti,n;
printf("-----輸入一個斐波那契數----- ");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%d ",fib(i));
printf(" ");
return0;
}
編譯結果:
./a.out
-----輸入一個斐波那契數-----
8
1 1 2 3 5 8 13 21
Ⅲ 用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(" ");
}
return0;
}
(3)c語言計算菲比那契數列擴展閱讀
C語言程序Fibonacci數列計算兔子:
#include<stdio.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 ",f[month]);
}
printf(" sum=%d ",f[YEAR]);//輸出年末的兔子總數
return0;
}
Ⅳ ,c語言:利用數組求斐波那契數列的前20項
代碼如下:
int a[20]={1,1};
printf(「%d %d 」,a[0],a[1]);
for(int i=0;i<20;i++)
{
printf(「%d 」,a[i]=a[i-1]+a[i-2]);
}
(4)c語言計算菲比那契數列擴展閱讀:
如何掌握C語言基礎知識及技巧:
首先准備一台PC,學編程一般對PC沒有太大的要求,一般主流的配置就好。
有了電腦之後,就得考慮安裝什麼操作系統了,主流使用的操作系統是windows,不過在這里不建議學習C編程使用windows,建議使用Linux。所以學習者最好安裝雙系統,或者徹底習慣Linux系統。
不管學習哪門編程語言,都建議學習者必須有一本關於此語言的全面知識的書籍,大一般採用的是譚浩強老師的《C語言程序設計》,還有 《C語言C++學習指南》從入門到精通(語法篇)視頻課程在線學習等,建議學習者可以去仔細研讀
Ⅳ 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 (n>0);
printf("前%d項目和ret=%d", m,ret);
getchar();
getchar();
return 0;
}
運行結果:
Ⅵ 用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
",f);
}
Ⅶ C語言 計算fibonacci數列
C語言程序代碼如下:
#include <stdio.h>
main()
{
long int f1,f2;
int i;
f1=1;
f2=1;
for (i=1;i<=9;i++)
{
printf("%ld %ld ",f1,f2);
if (i%3==0) printf("
");
f1=f1+f2;
f2=f2+f1;
}
return 0;
}
if語句是使輸出6個數後換行。因為i是循環變數,當i為偶數時換行,因此i每隔2換一次行相當於每輸出6個數後換行。
輸出結果如下
Ⅷ c語言,編程實現,求斐波那契數列,1,1,2,3,5,8,......的前20項及前20項和
C語言源程序如下:
#include<stdio.h>
int main()
{
int array[100]={1,1};//斐波那契數列前兩個元素均為0
int i=0;//循環變數
int n=20;//數列需要求的個數
int sum = 0;//和變數
for(i=2;i<n+1;i++)//按遞推原理依次求出後續元素
{
array[i]=array[i-1]+array[i-2];//數列原理
}
printf("arr[1]-arr[%d] = ", n);//提示輸出數列元素
for (i = 0; i < n; i++)//遍歷數列
{
printf("%d ",array[i]);//輸出arr[1]-arr[n]元素內容
sum += array[i];//順便進行求和
}
printf("
%d ", sum);//輸出求和結果
return 0;
}
程序運行結果如下:
(8)c語言計算菲比那契數列擴展閱讀:
利用遞歸原理進行求斐波那契數列的求解和求前n項和:
#include<stdio.h>
int fibonacci(int n) //遞歸函數
{
if (n == 0 || n == 1)
return 1;
if (n > 1)
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main()
{
int i = 0;
for (i = 0; i < 30; i++)
{
printf("fibonacci(%d) = %d
", i, fibonacci(i));
}
return 0;
}
Ⅸ 斐波那契數列的通項公式在C語言中如何表達
斐波那契數列在數學上的通項公式為
An=An-1+An-2
在C語言中,根據演算法實現不同,可以有很多種表達方式。以計算斐波那契第N項值為例,說明如下。
一、以數組方式實現:
intfn(intn)
{
int*a,i,r;
a=(int*)malloc(sizeof(int)*n);//分配動態數組。
a[0]=1;
a[1]=1;//初始化前兩項。
for(i=2;i<n;i++)
{
a[i]=a[i-1]+a[i-2];//這里就是通項公式的一種實現形式。
}
r=a[n-1];//保存結果
free(a);//釋放動態數組
returnr;//返回結果值。
}
二、以遞歸函數形式:
intfn(intn)
{
if(n==0||n==1)return1;//前兩項固定值。
returnfn(n-1)+fn(n-2);//通過遞歸調用實現通項公式。
}
三、注意事項:
1、方法有很多,不可能窮舉完成,寫代碼時要靈活使用。
2、例子中以int保存,限於整型範圍,計算很大值時會出現溢出。 根據實際需要選擇類型。