算法一:斐波那契阿数列

斐波纳切数列

# include <stdio.h>
/**
递归函数必须传参数
n:输入的参数
*/
int fib1(int n)
{
	if(n==1||n==2){
		return 1;
	}
	return fib1(n-1)+fib1(n-2);
}
/**
非递归求法
n:输入的参数
  */
int fib2(int n){
	int i,one=1,two=1,cur;
	if(n<3){
		return 1;
	}
	for(i=2;i<n;i++){
		cur=one+two;
		one=two;
		two=cur;
	}
	return cur;
}
/**
date=20180302
auther=xiaohuyaxixixi
purpose:斐波纳切数列
*/
int main(){

	/**int n,len=0,i;
	int a[100];
	scanf("%d",&n);
	while(n!=0){
		a[len]=fib1(n);
		len++;
		scanf("%d",&n);
	}
	for(i=0;i<len;i++){
		printf("\n%d\n",a[i]);
	}*/
	int n;
	scanf("%d",&n);
	printf("%d\n",fib2(n));
	
	return 0;
}

点赞