① 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<stdio.h>
intmain(void)
{
intn,i,fib[2];
while(scanf("%d",&n)&&n!=-1)
{
fib[0]=0,fib[1]=1;
for(i=1;i<=n;i++)
{
intt=fib[0]+fib[1];
fib[0]=fib[1];
fib[1]=t;
}
printf("%d ",fib[0]);
}
return0;
}
③ 求出斐波那契數列前20項的C語言程序 快幫幫忙哦
斐波那契數列的遞推公式為Fn=Fn-1+Fn-2,F1=F2=1
int
a,b,F,i,S20;
a=b=1;
S20=a+b;
for(i=3;i<=20;i++){
F=a+b;a=b;b=F;S20+=F;}
這個S20就是所求的前20項和。
④ 編一個c語言程序,求數列的第10項的值以及前10項之和. f1=f2=1 fn=f(n-1)+f(n-2) (n>2)
#include <stdio.h>
int main()
{
int i, p = 1, q = 0, sum = 0;
for(i=0; i<10; ++i)
{
q = p + q;
p = q - p;
sum += q;
}
printf("%d %d", q, sum);
}
⑤ C語言如何用數組求Fibonacci數列的前N項和
1、首先打開vc,點擊文件、新建;
⑥ 數據結構(c語言完成) 已知數列的遞歸表達式 Fn=2F(n-1)+nF(n-2) F0=0,F1=1要求精確計算數列第N項。
斐波那契數列,又稱黃金分割數列,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、……在數學上,斐波納契數列以如下被以遞歸的方法定義:F0=0,F1=1,Fn=F(n-1) int Fun(int n) { if(n==0) { return 0; } else if(n==1) { return 1; } else {...
⑦ 數據結構(c語言完成) 已知數列的遞歸表達式 Fn=2F(n-1)+3F(n-2)+F(n-3) F0
C語言程序:
#include<stdio.h>
voidmain()
{
doublef0=0,f1=0,f2=1,f3;
inti,n;
scanf("%d",&n);
if(n==1||n==2)
{
printf("%d",0);
return;
}
if(n==3)
{
printf("%d",1);
return;
}
for(i=4;i<=n;i++)
{
f3=2*f2+3*f1+f0;
f0=f1;
f1=f2;
f2=f3;
}
printf("%.0lf ",f3);
}
運行測試:
⑧ 在c語言中fn[21] = {0, 1, 1}是什麼意思
這就是定義了一個數組,共有21個元素,並且初始化前三個元素的值為0,1,1。
看起來是有點像求一個斐波納契數列的程序段吧。如果是這樣的話,其實他只需要定義前兩個元素就可以了,然後從第三個元素開始每個元素對值都等於前兩個元素之和。
⑨ 用C語言數組編寫一個程序實現求Fibonacci數列的前n個數。
#include <iostream>
using namespace std;
void main()
{
int n;
cout<<"請輸入n的值:\t";
cin>>n;
int fun(int n);
cout<<fun(n)<<endl;
}
int fun(int n)
{
if (n==1||n==2)
return 1;
else
return (fun(n-1)+fun(n-2));
}
望採納
⑩ 斐波那契數列的通項公式在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保存,限於整型範圍,計算很大值時會出現溢出。 根據實際需要選擇類型。