ネタ元 → 高度なプログラミング
【問題】
1から100までの数を表示するプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
さて、どぉしましょ...ちょびっとひねくれてみましょかね。
using System;
class Program {
static public void Main() {
string[] format = { "{0} ", "{1} ", "{2} ", "{1}{2} " };
for ( int i = 1; i <= 100; ++i ) {
Console.Write(format[(i%3==0?1:0)+(i%5==0?2:0)], i, "Fizz", "Buzz");
}
}
}
[追記]
答を紙に書くこと。コレ重要!
これしきのコードにコンパイラ動かしちゃアカンてことやね。
コードの意図が明確ならば紙に書いたやつをそのまま打ち込んで
コンパイルエラー出てもかまわんと思う。
要は問題解決の戦略を考え、コードという戦術に反映できるか、ですよ。
[さらに追記] 改訂版。
using System;
class Program {
static public void Main() {
string[] format = { "{0} ", "Fizz ", "Buzz ", "FizzBuzz " };
for ( int i = 1; i <= 100; ++i ) {
Console.Write(format[(i%3==0?1:0)+(i%5==0?2:0)], i);
}
}
}