方法一:
递归实现
#include<stdio.h> #include<stdlib.h> long long Fibonacci(unsigned int n) { if (1 == n) return 1; if (0 == n) return 0; return Fibonacci(n - 1) + Fibonacci(n - 2); } int main() { int n = 10; printf("%d",Fibonacci(n)); system("pause"); return 0; }
核心代码:
long long Fibonacci(unsigned int n) { if (1 == n) return 1; if (0 == n) return 0; return Fibonacci(n - 1) + Fibonacci(n - 2); }
方法二:
#include<stdio.h> #include<stdlib.h> long long Fibonacci(int n) { if (0 == n) return 0; if (1 == n) { return 1; } long long sum = 0; long long num1 = 0; long long num2 = 1; for (int i = 2; i <= n;i++) { sum = num1 + num2; num1 =num2; num2 =sum; } return sum; } int main() { int n = 10; printf("%d",Fibonacci(n)); system("pause"); return 0; }
核心代码:
long long Fibonacci(int n) { if (0 == n) return 0; if (1 == n) { return 1; } long long sum = 0; long long num1 = 0; long long num2 = 1; for (int i = 2; i <= n;i++) { sum = num1 + num2; num1 =num2; num2 =sum; } return sum; }