C++ 从0到n的斐波那契数

C++ 从0到n的斐波那契数,c++,fibonacci,C++,Fibonacci,我试着做一个程序,把从0到你输入的数字的所有斐波那契数都显示出来,但是有一个错误,我没有找到它。。。它编译。如果有人能告诉我哪里是我的错,那将非常有帮助;。它正在打印无限的图像 #include <iostream> int main() { int n,erste = 0,zweite = 1,neu = 0; std::cout << "Enter N "; std::cin >> n; for( int s = 0 ;s < n; s++ )

我试着做一个程序,把从0到你输入的数字的所有斐波那契数都显示出来,但是有一个错误,我没有找到它。。。它编译。如果有人能告诉我哪里是我的错,那将非常有帮助;。它正在打印无限的图像

#include <iostream>
int main()
{
int n,erste = 0,zweite = 1,neu = 0;
std::cout << "Enter N  ";
std::cin >> n;


for( int s = 0 ;s < n; s++ )
 {

 if(s <= 1)
    s = neu;
   else{
    neu = erste + zweite;
    erste = zweite;
    zweite = neu;
   }

   std::cout << neu << "  ";

  }}
在每次迭代中,您都将索引设置为0。难怪循环没有结束


根据经验,避免为变量a赋值,但如果过了一段时间,不要忘记更改值。

如果s很容易判断故障在哪里。我很难理解你为什么会犯这样的错误。但无论如何,这是更好的,至少它不会永远循环

#include <iostream>
int main()
{
int n,erste = 0,zweite = 1,neu = 0;
std::cout << "Enter N  ";
std::cin >> n;

for( int s = 0 ;s < n; s++ )
 {

    neu = erste + zweite;
    erste = zweite;
    zweite = neu;

   std::cout << neu << "  ";

  }
}

你在那里做的大部分事情都没有意义。查看正确的代码:

#include <iostream>
using namespace std;

int main() {
    int a = 1, b = 1, c = 1, n;
    cin >> n;
    cout << "1 ";
    if (n >= 2)
        cout << "1 ";

    for (int i = 3; i <= n; ++i) {
        a = b;
        b = c;
        c += a;
        cout << c << ' ';
    }
}

至少你可以解释一下你的错误。顺便说一句,这是第一次有人告诉你斐波那契级数从0开始。@SJuan76并不罕见,如果你定义F_0=0,F_1=1作为起始项,当k是5的倍数时,你会得到很好的属性,比如F_k是5的倍数。@SJuan76这一点也不少见。哦,学习使用调试器,甚至是穷人的调试器,打印到控制台。在for station?或者在哪里?如果您使用for循环,如果需要,请不要更改循环内变量的值,使用while循环谢谢您的解决方案;我的错误很可能是因为我想要n作为一个数字,我想要所有的斐波那契数都变成这个数字,例如,如果我输入数字12,我想要0 0 1 1 2 5 7好的,这很好,但这不是你的代码所做的。你需要一个while循环,你需要循环直到fibonacci数大于输入的数。顺便说一句,斐波那契序列不是以两个零开始的。
#include <iostream>
using namespace std;

int main() {
    int a = 1, b = 1, c = 1, n;
    cin >> n;
    cout << "1 ";
    if (n >= 2)
        cout << "1 ";

    for (int i = 3; i <= n; ++i) {
        a = b;
        b = c;
        c += a;
        cout << c << ' ';
    }
}