當前位置:首頁 » 編程軟體 » 斐波那契數列的編程

斐波那契數列的編程

發布時間: 2022-11-27 01:59:30

① 如何編程實現斐波那契數列

遞歸法:<pre t="code" l="cpp">#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;
}非遞歸法:<pre t="code" l="cpp">#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語言編程:寫出斐波那契數列的前40個數

#include <stdio.h>

int main()

{

int f1 = 1;

int f2 = 1;

int f3,i;

printf("%d %d ",f1,f2);

for(i = 1; i <= 38; i++)

{

f3 = f1 + f2;

printf("%d ",f3);

f1= f2;

f2= f3;

}

printf(" ");

return 0;

}

(2)斐波那契數列的編程擴展閱讀:

在數學上,斐波那契數列以如下被以遞推的方法定義:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

遞推公式

斐波那契數列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

如果設F(n)為該數列的第n項(n∈N*),那麼這句話可以寫成如下形式::F(n)=F(n-1)+F(n-2)

顯然這是一個線性遞推數列。

平方與前後項

從第二項開始,每個偶數項的平方都比前後兩項之積少1,每個奇數項的平方都比前後兩項之積多1。

③ 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;

}

程序運行結果如下:


(3)斐波那契數列的編程擴展閱讀:

利用遞歸原理進行求斐波那契數列的求解和求前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++的:
#include <iostream.h>
void main()
{
int s1=1,s2=1,s,m=1;
while(m<=A) //A是你所要的斐波那契數列項數
{
if(m<3)
s=1;
else
{
s=s1+s2;
s1=s2;
s2=s;
}
cout<<s<<" ";
m++;
}
cout<<endl;
}

⑤ 斐波那契數列的編程

//fib
#include<stdio.h>

int Fib(int n)
{
if(n==1) return 1;
if(n==0) return 1;
return Fib(n-1)+Fib(n-2);
}

int main()
{
int n;
scanf("%d",&n);
printf("%d\n",Fib(n));
}

⑥ 求用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);
}

python做斐波那契數列。

直接創建一個類然後調用下面的def函數即可
#斐波那契數列
'''
第一位是1
第二位是1
第三位是2
公式位F(n)=f(n-1)+f(n-2)

'''

def get_Fibonacci_sequence(n):
'''輸入n,遍歷到第n位的斐波那契數列'''
a,b=0,1
if n>=3:#即等於>2 相當於1,2位特殊處理
for i in range(n-1):#操作次數是n-1,去除一次第一位的操作
c=a+b
a,b,=b,c
print(b)#這里選擇先改變再輸出,可以減少1次的循環

def get_Fibonacci_Num(n):
'''輸入n,遍歷到第n位的斐波那契數列的第n位數'''
a, b = 0, 1
if n >= 3: # 即等於>2 相當於1,2位特殊處理
for i in range(n - 1): # 操作次數是n-1,去除一次第一位的操作
c = a + b
a, b, = b, c
# 這里選擇先改變再輸出,可以減少1次的循環

return b
def get_Fibonacci_Num_recursion(n):
'''輸入n,遍歷到第n位的斐波那契數列的第n位數,遞歸實現'''
if n==1 or n==2:#特別注意,這里要用邏輯或判斷,不能直接用或判斷,

return 1
else:

return get_Fibonacci_Num_recursion(n-1)+get_Fibonacci_Num_recursion(n-2)

get_Fibonacci_sequence(11)
print(get_Fibonacci_Num(11))
print(get_Fibonacci_Num_recursion(11))

⑧ 費波納切數列用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等。

⑨ python編程,斐波那契數列

婓波那契數列(前兩個數的和是第三個數)
def fib(num):
fibs=[0,1]
#num=input('請輸入婓波那契數列中的數據個數:')
for i in range(int(num)-2):
fibs.append(fibs[-2]+fibs[-1])
print(fibs)
print(fibs[-2])
fib(10)

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

1、首先打開C語言軟體,在主函數main中,聲明定義一個長度為20個元素的數組,並且給第0個第1個元素賦值為1。

熱點內容
關閉ip訪問 發布:2024-04-19 15:59:18 瀏覽:729
大屏安卓系統哪個好 發布:2024-04-19 15:49:10 瀏覽:791
解壓瀏覽器 發布:2024-04-19 15:39:22 瀏覽:574
pythonutfgbk 發布:2024-04-19 15:32:20 瀏覽:220
騰訊雲伺服器搭建網站打不開 發布:2024-04-19 15:32:15 瀏覽:966
光遇腳本輔助下載免費ios 發布:2024-04-19 15:22:11 瀏覽:242
表格VB腳本 發布:2024-04-19 15:13:07 瀏覽:779
python生成器表達式 發布:2024-04-19 15:12:10 瀏覽:746
獲取文件夾文件名 發布:2024-04-19 14:45:51 瀏覽:248
嗶咔本地緩存怎麼看 發布:2024-04-19 14:36:00 瀏覽:106