❶ 用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();
}
}
}
(1)用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語言編程,生成長度為100的斐波那契數列,並輸出第73項的值
理論上是這樣的,不過我的電腦運行太久了,可能程序設計不夠好吧
#include<stdio.h>int
main(){int
F(int
a);int
i;for(i=0;i<=100;i++){printf("F%d=%d\n",i,F(i));}printf("F73=%d\n",F(73));return
0;}int
F(int
a){int
F0=0,F1=1,Fn,n;if(a==0)Fn=0;else
if(a==1)Fn=1;else{for(n=0;n<=a;n++)</p><p>{
</p><p>F0=0;</p><p>F1=1;</p><p>
Fn=F(n-1)+F(n-2);</p><p>
}}return
Fn;}
❸ C語言,利用遞歸調用,編程輸出斐波那契數列 ,這個怎麼編啊,求指教啊
#include<stdio.h>
voidmain()
{
intFibonacci(intn);
intn,i,c=0;
printf("請輸入n的值:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
c=Fibonacci(i);
printf("%12ld",c);
if(i%4==0)//用於換行4個一行;
printf(" ");
}
}
intFibonacci(intn)//函數部分;
{
longintf;
if(n==1||n==2)
{
f=1;
}
else
if(n>=3)
f=Fibonacci(n-1)+Fibonacci(n-2);
returnf;
}
❹ c語言,利用數組生成斐波那契數列的前50項,然後求出m到k項之和,(0<m<=k<50),包括m和k項的值
#include<stdio.h>
#defineN50
voidFibonacci(inta[])
{
inti;
a[0]=a[1]=1;
for(i=2;i<N;++i)
a[i]=a[i-1]+a[i-2];
}
intmain()
{
intm,k,a[N];
intsum=0;
Fibonacci(a);
scanf("%d%d",&m,&k);
for(m=m-1;m<k;++m)
sum+=a[m];
printf("%d ",sum);
return0;
}
❺ C語言 簡單斐波那契函數 程序編寫
你聲明的fb函數,它的輸入參數是一個數組
intfb(inta[])
但是你在調用的時候,卻將一個值賦值給它,
s=fb(a[i]);
因此輸入參數不匹配,會出現錯誤。
建議,在fb函數中,專門設置一個輸入參數,用來表明數列的第幾項,即
intfb(inta[],intn)
調用的時候,修改調用方式:
s=fb(a,i);
❻ C語言編程:用遞歸和非遞歸法輸出斐波那契數列
遞歸法:
#include<stdio.h>
void main()
{
int Fibonacci(int n);
int n,i,c=0;
printf("請輸入n的值:");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
c = Fibonacci(i);
printf("%12ld",c);
if(i%4==0) //用於換行 4個一行;
printf("\n");
}
}
int Fibonacci(int n)//函數部分;
{
long int f;
if(n==1 || n==2)
{
f=1;
}
else
if(n>=3)
f = Fibonacci(n-1) + Fibonacci(n-2);
return f;
}
非遞歸法:
#include<stdio.h>
void main()
{
int i,n;
int f[]= {1,1};
printf("請輸入n的值:");
scanf("%d",&n);
for(i=2; i<=n; i++)
f[i] = f[i-2] + f[i-1];
for(i=0; i<=n; i++)
{
if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}
遞歸可以使程序看起來比較簡潔,但缺點是效率比較低,並且可能導致棧溢出,因此需要靈活使用遞歸。
❼ c語言編程 生成斐波那契數列並輸出
#include <stdio.h>int main()
{ int a[10]={1,1}; int i,n=16; printf("1 1"); for(i=2;i<n;i++) { a[i]=a[i-1]+a[i-2]; printf(" %d",a[i]); } retrun 0;
}
❽ 費波納切數列用C語言怎麼編程
費波納切數列,更通用的音譯是斐波那契數列,又稱黃金分割數列,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、……
數學上的定義是F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
根據數學定義,就可以編寫生成該數列的代碼,如下:
#include<stdio.h>
#defineRANGE30
staticintfibonacci_values[RANGE];
voidmake_fibonacci_values(void)
{
inti;
fibonacci_values[0]=0;
fibonacci_values[1]=1;//賦值前兩項
for(i=2;i<RANGE;i++)
fibonacci_values[i]=fibonacci_values[i-1]+fibonacci_values[i-2];//按照公式生成剩餘項
}
intmain()
{
inti;
make_fibonacci_values();//調用生成函數
for(i=0;i<RANGE;i++)
{
printf("F(%d)=%d ",i,fibonacci_values[i]);
}
return0;
}
這個代碼的功能是生成斐波那契數列前30項。
用一個數組把每項的值保存下來,然後依次計算。
事實上,只需要知道前兩個值,就可以知道下一個值,這樣保存兩個值就可以計算出第三個值了。於是求斐波那契數列第n項的函數也可以寫作:
#include<stdio.h>
intfibonacci(intn)
{
inti;
inta,b,c;
if(n<0)return0;//這其實是一種出錯情況。
if(n==0)return0;
if(n==1)return1;//處理前兩項的情況
a=0;
b=1;//對操作數賦初始值
for(i=2;i<=n;i++)//第一個計算結果其實是F(2),所以i的初始值用2
{
c=a+b;//這時的c即F(i)
a=b;
b=c;
}
returnc;
}
intmain()
{
intn;
scanf("%d",&n);//輸入一個n
printf("F(%d)=%d ",n,fibonacci(n));//輸出數列第n項值
return0;
}
同樣,對於這類問題也可以用遞歸思想,使代碼變得更簡潔。
#include<stdio.h>
intfibonacci(intn)
{
if(n==0)return0;
if(n==1)return1;//處理前兩項的情況
returnfibonacci(n-1)+fibonacci(n-2);
}
intmain()
{
intn;
scanf("%d",&n);//輸入一個n
printf("F(%d)=%d ",n,fibonacci(n));//輸出數列第n項值
return0;
}
以上是求斐波那契數列的三種常見的方式。值得注意的一點是,實際使用中要注意使用類型的范圍,不要溢出。
比如在這幾個程序中使用的是最簡單的int類型,最大可以計算到F(46), 而F(47)已經超過了int所能表達的范圍,會發生溢出。如果需要更大的值,那麼就要改成使用更多位元組的類型。比如long long等。
❾ c語言求編程:菲波那契數
=
=樸素演算法也就能算出30幾個斐波那契數,這題得用高精度
高精度是個非常實用,而且非常重要的演算法,建議多花些時間學,這題先放著,把高精度弄熟了再做
❿ 用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);
}