#include<stdio.h>
int feibo(int n)
{
int b,c,d;
if(n>=2)
{
b = 0;
c = 1;
d = b+c;
c = b;
b = d;
feibo(n-1);
}
else
{
printf("%d",d);
}
}
void main(){
int n =3;
getchar();
}
用函数解决斐波那契数我这种思路对吗?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 社区专家-Monster-XH 2023-04-15 18:30关注
基于Monster 组和GPT的调写:
- 有问题,主要是在feibo()函数中。
- 先要在feibo()函数的末尾返回一个值。在这里,要返回最终的斐波那契数,而不是只输出结果。要将printf语句移到函数的外面,并将其替换为return d;。
- 其次在feibo()函数中,每次递归调用时,b和c的值都被重新赋值为0和1。这将导致在后续的递归调用中丢失之前的计算结果。正确的做法是将b和c的值作为参数传递给递归调用的下一次,而不是重新赋值。
- 最后,在main()函数中,要调用feibo()函数并将其返回值打印出来。
以下是修改后的代码:
#include<stdio.h> int feibo(int n, int b, int c) { if(n==0) { return b; } else if(n==1) { return c; } else { int d = b + c; return feibo(n-1, c, d); } } int main() { int n = 3; int result = feibo(n, 0, 1); printf("%d", result); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值