18、斐波那契數列
斐波那契數列(Fibonacci Sequence):又稱黃金分割數列,因數學家萊昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、34、……在數學上,斐波那契數列以如下被以遞推的方法定義:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用。
2019年2 連結
# 遞迴
#include <stdio.h>
#define n 100
// 0、1、1、2、3、5、8、13、21、34、……
//在數學上,斐波那契數列以如下被以遞推的方法定義:
//F(0)=0,F(1)=1, //
//F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*
int fibo(int n){
if(n == 0) return 0;
if(n == 1) return 1;
return fibo(n - 1) + fibo(n - 2);
}
int main() {
int N = 0;
scanf("%d", &N );
int arr[ 100 ];
int sum;
for(int i = 0; i < N; i++) {
arr[i] = fibo( i );
printf("%d -> %d\n", i, arr[i]);
}
for (int i = 0; i < N ; i++) {
sum += arr[i];
}
printf("%d\nOK", sum );
return 0;
}
// 非遞迴 輸入n,輸出前n項和1 1 2 3 5 8 13(提示an=an-1+an-2) #include <iostream> using namespace std; int main() { int n,sum=0,a[100]; cin>>n; a[0] = a[1] = 1; for(int i = 2; i < n; i++) a[i] = a[i - 2] + a[i - 1]; //1️⃣ for(int j = 0; j < n; j++) sum += a[j]; cout << "斐波那契數列前" << n << "項的和是:" << sum << endl; return 0; } PS: 1️⃣最核心的一句程式碼,第n項數字為前倆項數字之和(n>=3),相信各位都爛熟於心了
本文來自部落格園,轉載請註明原文連結:https://www.cnblogs.com/WG11/p/15651628.html,作者:def_Class