前段时间遇到一道题让用递归和非递归的方法实现斐波那契数列,做了下,顺便记录下来
递归方法:
#include<iostream> using namespace std; int f(int i){ if(i==1||i==2) return 1; else return f(i-1)+f(i-2); } int main() { cout<<f(10)<<endl; return 0; }
非递归的实现:
#include<iostream> using namespace std; int main(){ int n=10; int result_p,result_n,result; result_p=result=1; while (n>2){ result_n=result_p+result; n--; result_p=result; result=result_n; } cout<<result<<endl; return 0; }