gpt4 book ai didi

c# - 编写 FizzBu​​zz

转载 作者:IT王子 更新时间:2023-10-29 04:28:11 28 4
gpt4 key购买 nike

阅读编码恐怖片时,我刚刚又遇到了 FizzBu​​zz。

原帖在这里:Coding Horror: Why Can't Programmers.. Program?

对于那些不知道的人:FizzBu​​zz 是一款非常受欢迎的 child 游戏。从1数到100,每次一个数字被 3 整除时,字符串“Fizz”被调用,每次一个数字可以被 5 整除字符串“Buzz”被调用,每次一个数字可以被 3 和 5 整除,这两个字符串一起称为“FizzBu​​zz”而不是数字。

这次,我写代码花了我一分钟,但有几件事我不喜欢。

这是我的代码:

public void DoFizzBuzz()
{
var combinations = new Tuple<int, string>[]
{
new Tuple<int, string> (3, "Fizz"),
new Tuple<int, string> (5, "Buzz"),
};

for (int i = 1; i <= 100; ++i)
{
bool found = false;

foreach (var comb in combinations)
{
if (i % comb.Item1 == 0)
{
found = true;
Console.Write(comb.Item2);
}
}

if (!found)
{
Console.Write(i);
}

Console.Write(Environment.NewLine);
}
}

所以我的问题是:

  1. 如何删除找到的 bool 值?
  2. 有没有更好的测试方法比foreach?

最佳答案

我认为您的实现过于复杂。这个可以完成工作并且更容易理解:

public void DoFizzBuzz()
{
for (int i = 1; i <= 100; i++)
{
bool fizz = i % 3 == 0;
bool buzz = i % 5 == 0;
if (fizz && buzz)
Console.WriteLine ("FizzBuzz");
else if (fizz)
Console.WriteLine ("Fizz");
else if (buzz)
Console.WriteLine ("Buzz");
else
Console.WriteLine (i);
}
}

关于c# - 编写 FizzBu​​zz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764539/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com