注释掉的是递归做法

#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;
}