从 0 到 N 的斐波那契数

fibonacci numbers from 0 to n

本文关键字:      更新时间:2023-10-16

我试图制作一个程序,将从 0 到您输入的数字的所有斐波那契数都放出来,但它有一个错误,我没有找到它......它编译。如果有人能告诉我我的错在哪里;),那将非常有帮助。它正在打印无休止的0000

#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 << "  ";
  }}
new = 0;
for( int s = 0 ;s < n; s++ )
  if(s <= 1)
    s = neu;

在每次迭代时,都将索引设置为 0。难怪循环不会结束。

根据经验,请避免为for的变量赋值(不过,如果它是while,请不要忘记更改值(。

如果 s

<= 1,则将 0 分配给 s。由于 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 << ' ';
    }
}
相关文章:
  • 没有找到相关文章