C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

--/--/-- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
タグ:
トラックバック(-) | コメント(-) | このエントリーを含むはてなブックマーク
2007/09/22 23:29
anarchy golf - FizzBuzz

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 文の書き方もポイントですね。普段こんな書き方してたら、怒られても文句言えませんけど ( 笑 )
タグ: .NET C# FizzBuzz

勉強になります
最後の""に何の意味があるのだろうと
コンパイルしてみて初めてわかる""の意味。
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

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。