1.题目:输入n,求出第n个Fibonacci数
1 1 2 3 5 8 13 21 34 …
2.方法1: 只使用递归
#include <iostream>
using namespace std;
int Fib(int i) {
if((i == 0) || (i == 1)) // 终止状态,这里从0开始,而不是从1开始
return 1;
else
return Fib(i - 1) + Fib(i - 2); // 归纳项
}
int main(int argc, const char * argv[]) {
int n;
while(cin >> n) {
cout << "Fibonacci数第" << n << "项为:" << Fib(n-1) << endl;
}
return 0;
}
3.方法2:结合动态规划和递归
用递归求出当前位置的Fabo