C语言递归方法和非递归写斐波那契数列

#include<stdio.h>

int fib1(int);


int main(void){

	int n;
	printf("please input the index of fib:");	
	scanf("%d",&n);
	printf("the %d fib1 number is %d\n",n,fib1(n));
	
	return 0;
}
int fib1(int n){

	if(n<=0){
		return 0;
	}else if(n<=2){
	
		return 1;
	}else{

		return fib1(n-1)+fib1(n-2);
	}
}

    下面是非递归方法写的斐波那契数列

#include<stdio.h>

int fib(int);

int main(void){

	int n;
	printf("请输入下标:\n");
	scanf("%d",&n);
	printf("the %d fib number is %d\n",n,fib(n));

	return 0;
}



int fib(int n){

	int i  = 0;
	int a = 1,b = 1;
	int result;
	if(n<=0){
		
		return 0;

		}else if(n<=2){
		
		return 1;

		}else{	
			for(i=3;i<=n;i++){
				result = a+b;
				a=b;
				b= result;
			}
			return result;
		}
}

猜你喜欢

转载自blog.csdn.net/nbdr_yl/article/details/80486829
今日推荐