c++斐波拉契数列求和

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

需要注意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);
    }
}
#include<bits/stdc++.h>
using namespace std;

int f[99999999];

int main()
{
int n;    
cin>>n;
f[1]=1;
f[2]=1;
for(int i=3;i<=n;i++)
    { f[i]=f[i-1]+f[i-2] }
cout<<f[n];
return 0;
}

/* Alkaid#3529 */

#include <iostream>
using namespace std;

/* 输出斐波那契额数列的前n项  循环方式 */
int fibonacci_circulate(int n);

int main()
{
    int n;

    
    for (;;)
    {
        cin >> n;

        if (cin.fail())
        {
            cin.clear();
            cin.ignore(1024, '\n');
        }
        else
            break;
    }

    cout << n << fibonacci_circulate(n) << endl;

    return 0;
}

int fibonacci_circulate(int n)
{
    long long f1 = 1, f2 = 1;

    int time = (n + 1) / 2;

    for (int i = 1; i < time; i++)
    {
        f1 = f1 + f2;
        f2 = f2 + f1;
    }

    if (n % 2 == 0)
        return f2;
    else
        return f1;
}

【以下回答由 GPT 生成】

  • 为了求解斐波那契数列的前n项和,可以使用迭代的方式计算每一项,并将其累加到一个变量中。以下是一个使用C++编写的程序示例:
#include <iostream>

int fibonacci(int n) {
    int fib1 = 0; // 第一项
    int fib2 = 1; // 第二项
    int sum = fib1 + fib2; // 前两项之和
    for (int i = 3; i <= n; i++) {
        int fib = fib1 + fib2;
        sum += fib;
        fib1 = fib2;
        fib2 = fib;
    }
    return sum;
}

int main() {
    int n;
    std::cout << "请输入要计算的斐波那契数列的项数n:";
    std::cin >> n;
    int sum = fibonacci(n);
    std::cout << "斐波那契数列的前" << n << "项和为:" << sum << std::endl;
    return 0;
}

这个程序首先通过用户输入获得要计算的斐波那契数列的项数n。然后使用迭代的方式计算前n项的斐波那契数,并将它们累加到变量sum中。最后输出结果。

请注意,在此示例中,斐波那契数列的第一项被定义为0,第二项被定义为1。如果你希望斐波那契数列的第一项为1,第二项为1,可以修改初始化变量fib1fib2为1和1。

希望这个解决方案对你有帮助。如果你有任何进一步的问题,请随时问我。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^