递归和非递归分别实现求第n个斐波那契数

递归和非递归分别实现求第n个斐波那契数

要求:
输入:5 输出:5
输入:10, 输出:55
输入:2, 输出:1
1.非递归实现

 int main()
{
int n = 0;
printf("你想得到到底几个数:");
scanf("%d", &n);
int ret = fabonacci(n);
printf("%d", ret);
return 0;
}
int fabonacci(int n)
{
int i,result;
int a = 1;
int b = 1;
if (n <= 2)
{
return 1;
}
if (n>=3)
for (i = 3; i <= n; i++)
{
result=a+b;
a = b;
b=result;
}
return result;
}

2,递归实现

int fabonacci(int n)
{
if (n<= 2)
return 1;
else
return fabonacci(n-1) + fabonacci(n - 2);//自己调用自己
}
int main()
{
int n = 0;
printf("你想得到到底几个数:");
scanf("%d", &n);
int ret = fabonacci(n);
printf("%d", ret);
return 0;
}

在这里插入图片描述
总结:
递归体现的是大事化小,特别方便,但不容易,后面我会继续与大家分享递归实现的其它问题,希望我们一起进步。加油

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值