【发布时间】:2020-05-02 02:30:47
【问题描述】:
因此,作为编码挑战的一部分,我尝试在不查看解决方案的情况下用 C++ 制作 Fizz Buzz 程序。对于那些不知道的人,它应该是一个循环,用Fizz替换任何能被3整除的数字,用Buzz替换任何能被5整除的数字,用FizzBuzz替换任何能被两者整除的数字:
1
2
Fizz
4
Buzz
6
7
8
Fizz
Buzz
11
Fizz
我几乎用下面的代码,但是,我有点恼火,即使我希望循环完全停止在 100,我设置程序的方式意味着额外的 1 被添加循环结束后到i。有没有办法阻止我的 FizzBuzz 程序超过 100?
#include <iostream>
using namespace std;
int main () {
for (int i = 1; i < 100; ++i){
if (i % 3 == 0 && i % 5 == 0){
cout << "FizzBuzz\n";
i = i + 1;
}
if (i % 3 == 0){
cout << "Fizz\n";
i = i + 1;
}
if (i % 5 == 0){
cout << "Buzz\n";
i = i + 1;
}
cout << i << "\n";
}
}
【问题讨论】:
-
如果这是一个编码挑战,而您要求我们帮助完成它,这难道不是违背了接受挑战的全部目的吗? >?当您不自己做事时,挑战的意义何在?
-
发布的代码与上面引用的输出不匹配,并且无论如何它都没有按照您的描述进行。
an extra 1 gets added to i after the loop has ended循环结束后没有i,因为该变量只存在于循环内部。 -
你不应该在循环内增加
i。使用else语句 -
@KenWhite • 有些人喜欢用答案做9x9 数独。其他人喜欢做 1x1 数独。
-
@KenWhite:你对你所做的每一件事都采用全有或全无的方法吗?如果是这样的话,我觉得有点对不起你。有些人睡觉。 @dxiv:实际上确实如此,我剪切并粘贴了输出的前 12 个数字,以免太乏味。然而,我感到困惑的是为什么它总是打印
101,即使循环应该在 100 结束。
标签: c++ loops if-statement increment