/*
求第n项斐波那契数列的递归函数
*/
#include <stdio.h>
/*
递归函数
*/
long Fib(int n){
if(n==0||n==1){
return n; //递归出口
}else{
return Fib(n-1)+Fib(n-2); //递归调用
}
}
/*
循环函数
*/
long Fib2(int n){
long oneBack, twoBack, current;
int i;
if(n==0||n==1){
return n;
}else{
oneBack = 1;
twoBack = 0;
for(i=2;i<=n;i++){
current = oneBack+twoBack;
twoBack = oneBack;
oneBack = current;
}
return current;
}
}
void main(void){
int x;
do{
printf("请输入你要求斐波那契数列第几项(负数退出):");
int n;
scanf("%d",&n);
x=n;
printf("(递归函数)斐波那契数列第%d项为:%d",n,Fib(n));
printf("\n");
printf("(循环函数)斐波那契数列第%d项为:%d",n,Fib2(n));
printf("\n\n");
}while(x>=0);
getch();
}
数据结构----递归算法(斐波那契数列)
最新推荐文章于 2023-04-20 00:05:16 发布