作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
阅读编码恐怖片时,我刚刚又遇到了 FizzBuzz。
原帖在这里:Coding Horror: Why Can't Programmers.. Program?
对于那些不知道的人:FizzBuzz 是一款非常受欢迎的 child 游戏。从1数到100,每次一个数字被 3 整除时,字符串“Fizz”被调用,每次一个数字可以被 5 整除字符串“Buzz”被调用,每次一个数字可以被 3 和 5 整除,这两个字符串一起称为“FizzBuzz”而不是数字。
这次,我写代码花了我一分钟,但有几件事我不喜欢。
这是我的代码:
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);
}
}
所以我的问题是:
最佳答案
我认为您的实现过于复杂。这个可以完成工作并且更容易理解:
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# - 编写 FizzBuzz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764539/
我是一名优秀的程序员,十分优秀!