【发布时间】:2011-04-13 12:27:14
【问题描述】:
我正在从这里尝试 fizzbuzz 程序:Why Can't Programmers.. Program?
“编写一个程序,打印从 1 到 100 的数字。但是对于三的倍数打印“Fizz”而不是数字,对于五的倍数打印“Buzz”。对于同时是三和五的倍数的数字打印“FizzBuzz”。”
protected void btn1_Click(object sender, EventArgs e)
{
for (int i = 1; i < 101; i++)
{
if (i % 3 == 0 & i % 5 == 0)
{
Response.Write("fizzbuzz" + ",");
}
else if (i % 3 == 0)
{
Response.Write("fizz" + ",");
}
else if (i % 5 == 0)
{
Response.Write("buzz" + ",");
}
else
{
i = i + 0;
}
Response.Write(i +",");
}
}
我能够产生某种结果,例如:
1,2,fizz,3,4,buzz,5,fizz,6,7,8,fizz,9,buzz,10,11,fizz,12,13,14,fizzbuzz,15,16,17 ,fizz,18,19,buzz,20,fizz,21,22,23,fizz,24,buzz,25,26,fizz,27,28,29,fizzbuzz,30,31,32,fizz,33,34 ,buzz,35,fizz,36,37,38,fizz,39 等等..
fizz这个词被打印了,但它没有代替3,fizzbuzz被打印了,但它没有代替15等等......
【问题讨论】:
-
只是一点点改进:删除第一个条件
if (i % 3 == 0 & i % 5 == 0)并仅在循环末尾附加逗号。 -
顺便说一句,
i = i + 0;是干什么用的?! o_O -
@zerkms - 不需要
-
等一下,我看到它漂浮在此页面的左侧? CSS 问题?
-
@zerkms :有没有比我做的更简单的方法?