递归以及非递归实现:

#include<iostream>
using namespace std;

long long fun(long long n){
	if(n == 0){
		return 0;
	}
	if(n ==1){
		return 1;
	}
	return fun(n-1) + fun(n-2);
}

long long fun1(long long n){
	if(n == 0){
		return 0;
	}
	if(n ==1){
		return 1;
	}
	int n1 = 1;
	int n2 = 0;
	int sum = 0;
	for(int i =2; i <= n; i++){
		sum = n1 + n2;
		n2 = n1;
		n1 = sum;
	}
	return sum;
}
int main(){
	// 1.递归实现
	cout<<fun(15)<<endl;
	// 2.非递归实现
	cout<<fun1(15)<<endl;
	system("pause");
	return 0;
}

  

 

posted on 2018-07-24 09:15  我得去图书馆了  阅读(221)  评论(0编辑  收藏  举报