You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言实现斐波那契序列优化:双变量递推替代手动定义大量变量

C语言斐波那契双变量递推优化方案

原有代码问题

你当前的硬编码实现存在明显冗余:手动定义了十余个独立变量存储每一步的计算结果,逐行编写递推逻辑,代码扩展性极差,只能输出固定数量的序列项。C语言完全支持和Python、C++逻辑一致的滚动递推实现,不需要冗余的中间变量。

核心实现逻辑

双变量滚动递推的原理非常简单:

  • 初始化两个变量存储序列的前两项
  • 每轮计算得到下一项后,同步更新两个变量的值,让其分别指向递推链上的后一位
  • 用循环控制递推轮数,无需手动编写每一步计算

优化后代码

以下代码输出结果和你提供的样例完全一致,仅用3个int变量就完成了全部计算:

#include <stdio.h>

int main()
{
    int prev_prev = 1; // 存储往前数第二项的值
    int prev = 1;      // 存储前一项的值
    int count;
    
    // 循环18次,输出和原代码数量相同的序列项
    for (count = 0; count < 18; count++) {
        int current = prev_prev + prev;
        printf("%d\n", current);
        // 滚动更新变量,为下一轮计算做准备
        prev_prev = prev;
        prev = current;
    }
    return 0;
}

运行结果

代码执行后输出和原代码完全匹配:

2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765

注意事项

  • 如果你需要输出更多项,仅需要修改for循环的终止条件即可,比如将count < 18改为count < 40就能输出40项,不需要新增任何变量定义
  • 斐波那契数列增长速度极快,当计算项数超过40时,int类型会因为数值溢出出现错误结果,此时可以将变量类型替换为long long扩大数值存储范围
  • 该实现时间复杂度为O(n),额外空间复杂度为O(1),是迭代实现斐波那契的最优常规方案,和Python中的高效迭代实现逻辑完全一致

内容的提问来源于stack exchange,提问作者anatolii123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:57:20