求第n個斐波那契數
阿新 • • 發佈:2018-12-16
斐波那契數:簡單的講就是除了第1項和第2項是1以外,其它的每一項都等於前兩項的和,比如:1,1,2,3,5,8,13.....
在這用遞迴和非遞迴兩種方法實現:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int Fib1(int n)//非遞迴實現 { int i = 1; int j = 1; int ret = 0;; if (n <= 2) { return 1; } while (n-2) { ret = i + j; i = j; j = ret; n--; } return ret; } int Fib2(int n)//遞迴實現 { if (n<=2) { return 1; } else { return (Fib2(n - 1) + Fib2(n - 2)); } } int main() { int n = 0; scanf("%d", &n); printf("%d\n", Fib1(n));//非遞迴實現 printf("%d\n", Fib2(n));//遞迴實現 system("pause"); return 0; }