C++求前n项和,直至超过某个数

这个程序我试着写了一下,但是还是不对,所以想问一下错误在哪里,不能输出输出不是我要的值

img

img

#include <iostream>

int main()
{
    double Sn = 0, q;
    int n = 1;
    std::cin >> q;
    while (Sn < q)
    {
        Sn += static_cast<double>(n + 1) / n;
        n++;
    }
    std::cout << Sn << '\n';
    return 0;
}

题目只输入一个数啊,哪来的n啊