题解 | #Fibonacci#

Fibonacci

http://www.nowcoder.com/practice/17ad6908e36a49f4b06ea96936e8bb25

注释掉的是递归做法

#include <cstdio>
#include <iostream>

using namespace std;

//同样地,递归和循环都写一下

// int digui(int n){
// 	if(!n){
// 		return 0;
// 	}
// 	if(n==1 || n==2){
// 		return 1;
// 	}else{
// 		return digui(n-2)+digui(n-1);
// 	}
// }

int xunhuan(int n){
	if(!n){
		return 0;
	}
	if(n==1 || n==2){
		return 1;
	}else{
		int m1 = 1;
		int m2 = 1;
		int m3;
		int i=3;
		while(i<=n){//此时求i处对应的值 
			m3 = m1 + m2;
			m1 = m2;
			m2 = m3;
			i++;
		}
		return m3;
	}
}

int main(){
	int n;
	while(scanf("%d",&n) != EOF){
// 		printf("%d\n",digui(n));
		printf("%d\n",xunhuan(n));
	}
	return 0;
}
全部评论

相关推荐

整顿职场的柯基很威猛:这种不可怕,最可怕的是夹在一帮名校里的二本选手,人家才是最稳的。
点赞 评论 收藏
分享
冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务