斐波拉契數列c語言代碼,斐波那契數列c語言流程圖

本文目錄一覽:

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

#define RANGE 30

static int fibonacci_values[RANGE];

void make_fibonacci_values(void)

{

int i;

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];//按照公式生成剩餘項

}

int main()

{

int i;

make_fibonacci_values();//調用生成函數

for(i = 0; i  RANGE; i ++)

{

printf(“F(%d)=%d\n”, i, fibonacci_values[i]);

}

return 0;

}

這個代碼的功能是生成斐波那契數列前30項。

用一個數組把每項的值保存下來,然後依次計算。

事實上,只需要知道前兩個值,就可以知道下一個值,這樣保存兩個值就可以計算出第三個值了。於是求斐波那契數列第n項的函數也可以寫作:

#include stdio.h

int fibonacci(int n)

{

int i;

int a,b,c;

if(n0) return 0; //這其實是一種出錯情況。

if(n == 0) return 0;

if(n == 1) return 1;//處理前兩項的情況

a = 0;

b = 1;//對操作數賦初始值

for(i = 2; i = n; i ++)//第一個計算結果其實是F(2),所以i的初始值用2

{

c = a+b;//這時的c即F(i)

a = b;

b = c;

}

return c;

}

int main()

{

    int n;

    scanf(“%d”,n);//輸入一個n

    printf(“F(%d) = %d\n”, n, fibonacci(n));//輸出數列第n項值

    

    return 0;

}

同樣,對於這類問題也可以用遞歸思想,使代碼變得更簡潔。

#include stdio.h

int fibonacci(int n)

{

if(n == 0) return 0;

if(n == 1) return 1;//處理前兩項的情況

return fibonacci(n-1) + fibonacci(n-2);

}

int main()

{

    int n;

    scanf(“%d”,n);//輸入一個n

    printf(“F(%d) = %d\n”, n, fibonacci(n));//輸出數列第n項值

    

return 0;

}

以上是求斐波那契數列的三種常見的方式。值得注意的一點是,實際使用中要注意使用類型的範圍,不要溢出。

比如在這幾個程序中使用的是最簡單的int類型,最大可以計算到F(46), 而F(47)已經超過了int所能表達的範圍,會發生溢出。如果需要更大的值,那麼就要改成使用更多位元組的類型。比如long long等。

求C語言中斐波那契數列源程序及解釋?

斐波那契數列定義:

F0 = 0

F1 = 1

Fn = Fn-1 + Fn-2 (n≥2)

直白的講,第0項、第一項分別約定為0、1,自第2項開始,每一項等於前兩項之和。

#include stdio.h

#define MAX 10 /*費波那契數列項數上限*/

void fibonacci (unsigned __int64 f[], int n) { /*生成n項費波那契數列,n=0為起始*/

int i;

f[0] = 0; /*F0=0*/

f[1] = 1; /*F1=1*/

for (i=2; i=n; i++) /*Fn=Fn-1+Fn-2(n=2)*/

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

}

int main(void) {

    unsigned __int64 f[MAX];

    int i;

    

    fibonacci (f, MAX);

    

    for (i=0; i=MAX; i++)

     printf (“F%d = %I64u\n”, i, f[i]);

printf(“\n”);

getch (); /*屏幕暫留*/

return 0;

}

運行結果

斐波那契數列C語言程序怎麼表示

#include cstdio

#include iostream

using namespace std;

int main()

{

    int n;

    cinn;

    int a=1,b=1,c;

    if(n3)

    {

        cout1endl;

        return 0;

    }

    n-=2;

    while(n–)

    {

        c=a+b;

        a=b;

        b=c;

    }

    coutcendl;

    return 0;

}

輸入n為第n項,輸出斐波那契第n項值

C語言斐波那契數列求和

奇數項求和:a₁+a₃+a₅+a₇+…+a₂ₙ₋₁=a₂ₙ

偶數項求和:a₂+a₄+a₆+a₈+…+a₂ₙ=a₂ₙ₊₁-1

平方求和:a₁+a₂+a₃+a₄+…+aₙ²=aₙ·aₙ₊₁

斐波那契數列中的斐波那契數會經常出現在我們的眼前——比如松果、鳳梨、樹葉的排列、某些花朵的花瓣數(典型的有向日葵花瓣),蜂巢,蜻蜓翅膀,超越數e(可以推出更多),黃金矩形、黃金分割、等角螺線等。

擴展資料:

斐波那契數列特性

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

如:第二項 1 的平方比它的前一項 1 和它的後一項 2 的積 2 少 1,第三項 2 的平方比它的前一項 1 和它的後一項 3 的積 3 多 1。

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]

(註:奇數項和偶數項是指項數的奇偶,而並不是指數列的數字本身的奇偶)

參考資料來源:

百度百科-斐波那契數列

c語言,編程實現,求斐波那契數列,1,1,2,3,5,8,……的前20項及前20項和

C語言源程序如下:

#includestdio.h

int main()

{

int array[100]={1,1};//斐波那契數列前兩個元素均為0

int i=0;//循環變數

int n=20;//數列需要求的個數

int sum = 0;//和變數

for(i=2;in+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(“\n%d “, sum);//輸出求和結果

return 0;

}

程序運行結果如下:

擴展資料:

利用遞歸原理進行求斐波那契數列的求解和求前n項和:

#includestdio.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\n”, i, fibonacci(i)); 

}    

return 0; 

}

原創文章,作者:AQER,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150296.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AQER的頭像AQER
上一篇 2024-11-07 09:50
下一篇 2024-11-07 09:50

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29

發表回復

登錄後才能評論