从 0 到 N 的斐波那契数
fibonacci numbers from 0 to n
我试图制作一个程序,将从 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 << ' ';
}
}
相关文章:
- 没有找到相关文章