斐波那契数列求和,看着简单,就是写不对。

题目描述
给定一个数列 1 1 2 3 5 8 13 21求该数列的前n项之和。

输入
一行,1个整数,表示要求和的总项数n (n>=1)。
输出
一行,包含1个整数,表示该数列的前n项之和。

样例输入 Copy
4
样例输出 Copy
7

写法如下,谁帮我看下哪里不对,谢谢啦。

img


#include <iostream>
using namespace std;

int main()
{
    int a = 1, b = 1, n, k = 3, sum = 0, i = 1;
    while (true)
    {
        cout << "n = ";
        cin >> n;

        while (n >= 3 && k <= n) {
            i = a + b;
            a = b;
            b = i;
            k++;
            //sum += i;
        }
        cout << "num = " << i << endl;
    }
    
    return 0;
}

为什么要i++