Orietta_Cx330 2023-08-15 14:25 采纳率: 100%
浏览 13
已结题

c++斐波拉契数列求和

斐波拉契数列
输入正整数n,输出斐波拉契数列的前n项的和
要求不含汉字,用C++

  • 写回答

4条回答

  • bostonAlen 2023-08-15 15:08
    关注

    需要注意n有一个范围,此程序n为93时,long long就溢出了。

    #include<iostream>
    using namespace std;
    int main()
    {
            int num;
            cout << "计算前多少项?\n";
            cin >> num;
    
            long long int a[94] = { 1,1 };
            long long int sum = 0;
            int i;
            for (i = 2; i < num; i++)
            {
                    a[i] = a[i - 1] + a[i - 2];
                    cout << a[i] << ' ';
                    sum+=a[i];
            }
            cout<<endl<<"sum:"<<sum<<endl;
            return 0;
    }
    

    这里没使用递归是因为递归太慢了。

    long fibonacci(int n) {
        if (n == 0 || n == 1) {
            return n;
        } 
        else {
            return fibonacci(n-1) + fibonacci(n-2);
        }
    }
    
    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月27日
  • 专家已采纳回答 8月19日
  • 创建了问题 8月15日