求判断是否为斐波那切数列(含高精度)

输入n(1<=n<=1000)。

输出n个o,如果i是斐波那契数列中的数,则第i个o为大写,否则为小写。

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int n = 0;
    cin >> n;
    string s(n, 'o');
    int a = 1, b = 1;
    s[0] = 'O';
    while(true)
    {
        int tmp = a + b;
        if (tmp > n)
            break;
        s[tmp - 1] = 'O';
        a = b;
        b = tmp;
    }
    cout << s;
    return 0;
}