C語言遞迴與非遞迴實現求第n個斐波那契數
阿新 • • 發佈:2019-02-19
一、非遞迴實現第N個菲波那切數列:
程式如下:
#include <stdio.h> int fib(int n) { int a1 = 1; int a2 = 1; int a3 = 0; if( n <= 2 ) return 1; else { while(n > 2) { a3 = a1 + a2; a1 = a2; a2 = a3; n--; } } return a3; } int main() { int n = 0; printf("請輸入一個第n個數,第n個數的菲波那切數為:\n"); scanf("%d",&n); printf("%d",fib(n)); system("pause"); return 0; }
二、遞迴實現第N個菲波那切數列:
程式如下:
#include <stdio.h> int fib(int n) { if (n <= 2) return 1; else return fib(n - 1) + fib(n - 2); } int main() { int n = 0; printf("請輸入一個第n個數,第n個數的菲波那切數為:\n"); scanf("%d", &n); printf("%d\n", fib(n)); system("pause"); return 0; }