使用向量的斐波那契数列

极限杀手

我必须编写以下斐波那契数列,但我想用向量来做,以向我的老师展示我正在远离所有课程,但我有几个这样的警告:

main.cpp: 18: warning: implicit conversion changes signedness:
    'int' to 'std::vector::size_type' (aka 'unsigned long long')

main.cpp: 18: warning: implicit conversion changes signedness:
    'int' to 'std::vector::size_type' (aka 'unsigned long long')

我不明白为什么它不起作用?

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n;
    cin >> n;

    vector<int> table;
    table[0] = 0;
    table[1] = 1;

    if (n == 0) { cout << n << endl; }
    else if (n == 1) { cout << n << endl; }
    else {
        for (int i = 0; i < n; i++) {

            table[i] = table[i - 1] + table[i - 2];
            cout << table[i];
        }
    }
}
克里斯文·杰姆

“Yksisarvinem”已经在问题评论中指出了这个问题,所以我将在这里提供更正后的代码。

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> table;
    for (int i = 0; i < n; i++) {
        if (n == 0 || n == 1) {
            table.push_back(n);
            cout << n << endl;
            continue;
        }
        table.push_back(table[i - 1] + table[i - 2]);
        cout << table[i];
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章