两种解法:递归;迭代~
先看递归:
点击(此处)折叠或打开
- int fib(int n){
- if(n==0||n==1) return n;
- else return( fib(n-1)+fib(n-2));
- }
这种解法的缺点就是太耗资源,于是有人提出用dp解决,但是一般dp都能够用迭代来降低一个维度,所以就有了如下的代码:
点击(此处)折叠或打开
- int fib2(int n){
- if(n==0||n==1) return n;
- int res, first = 0, second=1;
- for(int i = 2; i <=n; i++){
- res = first + second;
- first = second;
- second = res;
- }
- return res;
- }