#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 目标检测项目无法读取视频
- ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
- ¥15 小红薯封设备能解决的来
- ¥100 求采集电商背景音乐的方法
- ¥15 数学建模竞赛求指导帮助
- ¥15 STM32控制MAX7219问题求解答
- ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'
- ¥15 vue+element项目中多tag时,切换Tab时iframe套第三方html页面需要实现不刷新
- ¥50 深度强化学习解决能源调度问题
- ¥15 一道计算机组成原理问题