C語言實現斐波那契數列的兩種方法(遞迴和迭代)
兩種方法實現斐波那契數列,遞迴實現起來稍簡單些,思路也清晰些,但執行效率顯然不如迭代
下面是編譯通過的兩種方式實現斐波那契數列的C語言程式碼:
/* * fibanacci.c * * Created on: 2015-3-16 * Author: floydz */ #include <stdio.h> /* * 關於long long的定義: 在C語言的C99標準擴充套件了新的整數型別 long long,long是32位寬, * 佔4個位元組,long long通常被定義成 64 位寬,也就可以實現了在32位機器上可以擴充套件8位元組的資料 * * I64d是對應的long long型別的printf列印識別符號 */ /* * fibonacci_resursive 使用遞迴的方法實現 */ long long fibonacci_recursive(int n) { if (n <= 0) return 0; if (n == 1) return 1; return fibonacci_recursive(n - 2) + fibonacci_recursive(n - 1); } /* * fibonacci_iteration使用迭代的方法實現 */ long long fibonacci_iteration(int n) { int result[2] = { 0, 1 }; int i = 2; long long num = 0; if(n < 2) { return result[n]; } long long fib_minusone = 1; long long fib_minustwo = 0; for(;i <=n;i++) { num = fib_minusone + fib_minustwo; fib_minustwo = fib_minusone; fib_minusone = num; } return num; } int main() { int input; long long result1, result2; printf("請輸入數字n:\n"); fflush(stdout);//重新整理標準輸出 scanf("%d", &input); printf("你輸入的數字是:%d\n", input); fflush(stdout); result1 = fibonacci_recursive(input); result2 = fibonacci_iteration(input); printf("計算所得的Fibonacci_recursive(%d)值為%I64d:\n", input, result1); fflush(stdout); printf("計算所得的Fibonacci_iteration(%d)值為%I64d:\n", input, result2); fflush(stdout); return 1; }
相關推薦
C語言實現斐波那契數列的兩種方法(遞迴和迭代)
兩種方法實現斐波那契數列,遞迴實現起來稍簡單些,思路也清晰些,但執行效率顯然不如迭代 下面是編譯通過的兩種方式實現斐波那契數列的C語言程式碼:/* * fibanacci.c * * Created on: 2015-3-16 * Author: flo
斐波那契數列3種解法(樸素遞迴、動態規劃、數學歸納)及演算法分析
本文來自網易公開課的<演算法導論>第3講分治法。讓我對分治法的使用有了一個新的認識斐波那契數列,又稱黃金分割數列,F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*) 下面我將使用Java(是的,又是Java,不過我覺得沒什麼問題,演
遞歸的應用C語言實現 斐波那契函數
bsp std 技術 顯示 斐波那契數 cnblogs 分享 pri nbsp #include "stdio.h" int Fbi(int i) /* 斐波那契的遞歸函數 */{ if( i < 2 ) return i == 0 ? 0 : 1;
GO語言實現斐波那契數列(Fibonacci)
斐波那契數列指的是這樣一個數列: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144… 這個數列從第3項開始,每一項都等於前兩項之和。 package main imp
【C語言】斐波那契數列的兩種演算法(迴圈,遞迴)
#include<stdio.h> int Fabio(int n) //迴圈 { int i; int f1 = 1; int f2 = 1; int f3 = 1; for(i = 2;i<n;i++) { f3 = f1 + f
C語言 java 斐波那契數列
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、 因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入, 故又稱為“兔子數列”,指的是這
斐波那契數列兩種演算法的時間複雜度
斐波那契數列簡介: 斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……
斐波那契數列兩種解法
數列:1,1,2,3,5,8,13,21,34,55…….,被稱為斐波那契數列。 斐波那契數列特點:第一、第二個數為1,從第三個數開始,該值等於其前面兩個數之和。 本文主要解決計算第N個斐波那契數的值。 1. 遞迴 /** * 斐波那契數列
C語言經典演算法(八)——遞迴實現斐波那契數列的兩種方法
後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現斐波那契數列 1、 遞迴實現斐波那契數列Fib(n) <1> 題目描述:輸入n值,求解第n項的斐波那契數列值 <2> 方法一:概念法 <3> 方法二:遞迴法 斐波那契數列值是值1
C語言編程實現斐波那契數列(遞歸與非遞歸)
() code tdi clu return include 位置 c語言編程 數組 一.非遞歸 <1>數組 #include<stdio.h> #include<stdlib.h> int main() { int a[1000
C++實現斐波那契數列
一個數 ngxin turn 版權 min clu mes bsp In 斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一
c++實現斐波那契數列程式碼
程式程式碼如下:#include<iostream> using namespace std; int Fbi(int i) { if (i<2) { return i==0 ? 0:1; } return
C++14嚐鮮,趣味程式設計:用lambda實現斐波那契數列
斐波那契數列 #include <iostream> #include <utility> using namespace std; int main() { auto f
python實現斐波那契數列筆記
log 得到 while span style mage lis nbsp images 斐波那契數列即著名的兔子數列:1、1、2、3、5、8、13、21、34、…… 數列特點:該數列從第三項開始,每個數的值為其前兩個數之和,用python實現起來很簡單: a=0 b=1
實現斐波那契數列
指定 style tar https 遞歸 com code lan pri # 斐波那契數列# 1,1,2,3,5,8,13....1)用遞歸函數實現斐波那契數列: (指定第幾個斐波那契數) def fib(n): if n == 1 or n == 2
Python 遞歸實現斐波那契數列
斐波那契數列Python 遞歸實現斐波那契數列def fab(n): if n==1 or n==2: return 1 else: return fab(n-1)+fab(n-2)num=int(input(‘請輸入數字:‘))result=fab(num)print
python實現斐波那契數列
定義函數 實現 python實現 code while 斐波那契數列 數列 int a+b 斐波那契數列 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 除第一項和第二項外,任意一項的值為前面兩項的和 定義函數 def fib(N): n,a,b
python代碼實現斐波那契數列數列
nbsp cci con 數學家 color span 分割 兔子 簡單 斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,
JavaScript實現斐波那契數列
斐波那契數列,又稱黃金分割數列,指的是這樣一個數列:1,1,2,3,5,8,13,21……從第3個數字開始,每個數字等於它前面兩個數字之和 方法1:遞迴 function fib(n){ if(n==1 || n==2){ return 1; }
實現斐波那契數列(js),以及複雜度降階
實現斐波那契數列(js),以及複雜度降階 背景——兔子數列 假設第1個月有1對剛誕生的兔子,第2個月進入成熟期,第3個月開始生育兔子,而1對成熟的兔子每個月會生1對兔子,兔子永遠不會死去……那麼,由1對兔子開始,12個月後會有多少對兔子呢? 問題分析: 我們拿新出生