在斐波那契序列c ++中从数组中找到正确的元素时出错

问题描述 投票:0回答:1

因此,我尝试将斐波纳契数列手动引入数组后,从数组中获取正确的数字。首先,我说数组有多少个元素,然后我需要一个一个地介绍它们。之后,代码应向答案吐出我介绍的哪个数字是斐波那契数列的一部分。希望有道理!我忘了提一下,在测试中(最大bar [9]),我把bar [3] = 2,bar [4] = 3。 bar [5] = 5,bar [6] = 8,bar [7] = 12(不是fib)和bar [8] = 21,有趣的是程序只吐出2,5和21,这是正确的,但是3和8号还给出了另一个奇怪的答案,最后一个数字是144和10900(或类似的数字)

另外,我对C ++还是陌生的,因此我想尝试学习,每条信息都会有所帮助,谢谢!

#include <iostream>
#include <math.h>

using namespace std;

int main() {
    int x, bar[100];
    cout << "Cate numere sunt in array? = ";
    cin >> x;
        for (int i = 3; i < x; i++) {
            cout << "bar[" << i << "]=";
            cin >> bar[i];
            bar[0] = 0;
            bar[1] = 1;
            bar[2] = 1;
        }
        for (int i = 0; i < x; i++) {
            bool fib = false;

            if (bar[i] = (1 / sqrt(5)) * pow(((1 + sqrt(5)) / 2), bar[i]) - (1 / sqrt(5)) * pow(((1 - sqrt(5)) / 2), bar[i])) {
                fib = true;

                cout << "Numerele din sirul lui Fibonnaci sunt: " << bar[i] << ", " << endl;
            }
        }

    return 0;
}```
c++ arrays fibonacci
1个回答
-1
投票

将bar [1] bar [2]和bar [3]初始化移到for循环之外。它们没有在其范围之外定义。

© www.soinside.com 2019 - 2024. All rights reserved.