C# の最短コードは 123 文字です。たぶんこれ以上短くはできないと思われます。
これがそのコードになります。
class P{static void Main(){for(int i=0;i++<100;)System.Console.WriteLine((i%3<1?"Fizz":"")+(i%5<1?"Buzz":i%3<1?"":i+""));}}
改行とスペースを入れて見やすくするとこんな感じです。
class P
{
static void Main()
{
for (int i = 0; i++ < 100; )
System.Console.WriteLine((i % 3 < 1 ? "Fizz" : "") + (i % 5 < 1 ? "Buzz" : i % 3 < 1 ? "" : i + ""));
}
}
最大のポイントは、やはり WriteLine メソッドの引数です。あと、for 文の書き方もポイントですね。普段こんな書き方してたら、怒られても文句言えませんけど ( 笑 )
勉強になります
最後の""に何の意味があるのだろうと
コンパイルしてみて初めてわかる""の意味。
for文の書き方に激しく刺激を受けました。
私も何か奇抜なのを書きたいと思い、
forを使わずにできないだろうかと
やってみました。
using System.Linq;
class C {
static void Main() {
Enumerable.Range(1, 100).Select(i => (i % 3 < 1 ? "Fizz" : "") + (i % 5 < 1 ? "Buzz" : i % 3 < 1 ? "" : i + "")).ToList().ForEach(s => System.Console.WriteLine(s));
}
}
全然短くないうえにパクリですが、
これでなんとかできました。
楽しい刺激ありがとうございました。
2010.06.28 00:25 URL | おじいちゃん #- [ 編集 ]
Re: 勉強になります
いろんなやり方があって面白いですね~
楽しんで頂けたようで何よりです
2010.06.30 23:57 URL | よこけん #- [ 編集 ]
トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/162-8948f0b8