當前位置:首頁 » 編程語言 » 如何利用c語言斐波那契
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

如何利用c語言斐波那契

發布時間: 2023-08-25 20:07:13

① 用c語言程序計算斐波那契數列

main()
{
int a=0;
int b=1;
int c,i;
int s=a+b;
for(i=3;i<=21;i++)
{
c=a+b;
s=s+c;
a=b;
b=c;
}
printf("%d",s);
}

② 用C語言編程 斐波那契數列:1,1,2,3,5,8,13…,輸出前13項,每行輸出5個數。

public class FeiBoMethod {

// 使用遞歸方法

private static int getSum(int num) {

if (num== 1 || num== 2)

return 1;

else

return getSum(num- 1) + getFibo(num- 2);

}

public static void main(String[] args) {

System.out.println("斐波那契數列的前13項為:");

for (int i = 1; i <= 13; i++) {

System.out.print(getSum(i) + " ");

if (i % 5 == 0)

System.out.println();

}

}

}

(2)如何利用c語言斐波那契擴展閱讀:

使用數組的方式實現

publicclassFeiBoMethod{

//定義數組方法

publicstaticvoidmain(String[]args){

intarr[]=newint[13];

arr[0]=arr[1]=1;

for(inti=2;i<arr.length;i++){

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

System.out.println("斐波那契數列的前13項如下所示:");

for(inti=0;i<arr.length;i++){

if(i%5==0)

System.out.println();

System.out.print(arr[i]+"\t");

③ 斐波那契數列 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 (){

for (int i=1;i<=50;i++)

printf("%d::%d ",i,fn(i));

}

④ c語言編寫計算斐波那契(Fibonacci)

斐波那契數列為:0,1,1,2,3,5,8,13.....

/*你的程序*/
#include<stdio.h>
int fib(int n,int f)
{
if(n==1&&n==2) /*n不可能同時等於1和2,所以遞歸無終點,會一直遞歸下去。*/
{f=1;} /*正確的斐波那契數列是n==1時f=0,n==2時f=1*/
else
{f=fib(n-1,f)+fib(n-2,f);}
return f;
}
int main()
{
int n,f; /*n沒有賦初始值*/
f=fib(n,f);
printf("%d",f);
return 0;
}
/*改正後的程序*/
#include<stdio.h>
int fib(int n,int f)
{
if(n==1)
{
f=0;
}
else if(n==2)
{
f=1;
}
else
{
f=fib(n-1,f)+fib(n-2,f);
}
return f;
}

int main()
{
int n,f;
scanf("%d,%d",&n,&f);
f=fib(n,f);
printf("%d",f);

return 0;
}

⑤ C語言 數組 斐波那契數列

#include "stdafx.h" //這是 VS 預編譯頭。其他系統刪除。
#include<stdio.h>
#include<stdlib.h> //使用 system("pause"); 時需要。
//MS 否決了 scanf 等函數,加上下句,仍然可用。其他系統刪除。
#pragma warning(disable:4996)

//問題:斐波那契數列的定義為: F1=1,F2=1,F(n)=F(n-2)+F(n-1)
int Fibonacci(int n)
{
if (n == 1)
return 1;
if (n == 2)
return 1;
return Fibonacci(n - 2, f1, f2) + Fibonacci(n - 1, f1, f2);
}

// VS 標准主函數聲明,其他系統請根據系統更改。
int _tmain(int argc, _TCHAR* argv[])
{
int i, k, d[40];
scanf("%d", &k);
for (i = 0; i < k; i++)
{
scanf("%d", &d[i]);
}
for (i = 0; i < k; i++)
{
printf("%d\n", Fibonacci(d[i]));
}

system("pause"); //防止窗口一閃而過
return 0;
}

⑥ C語言 斐波那契數列怎麼寫

#include<stdio.h>
intfei(intindex)//數組實現
{
if(index<1)
{
return-1;
}
if(index<3)
{
return1;
}
int*a=newint[index];
a[0]=a[1]=1;
for(inti=2;i<index;i++)
a[i]=a[i-1]+a[i-2];
intm=a[index-1];
deletea;//釋放內存空間
returnm;
}
inttou(inti)//取第一位
{
while(i>9)
i/=10;
returni;
}
intmain()
{
intn,a[100];
scanf("%d",&n);
for(inti=0;i<n;i++)
scanf("%d",&a[i]);
for(inti=0;i<n;i++)
{
if(fei(a[i])>9)
printf("%d%d ",tou(fei(a[i])),fei(a[i])%10);
else
printf("%d ",fei(a[i]));
}
}

⑦ 斐波那契數列的通項公式在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保存,限於整型範圍,計算很大值時會出現溢出。 根據實際需要選擇類型。