ネタ元:NAL-6295の舌先三寸
喪中につき、新年のご挨拶は控えさせていただいて・・・まずは
寒中お見舞い申し上げます。
ということで、NAL-6295さんところでおもしろそうな問題があったのでやってみました。
先日、ちょっと祭りのあった「FizzBuzz問題」の応用編ですね。
ルール
1から40まで数字を読み上げる。
3の倍数と3のついた数字の時だけアホになる。
上のルール+8の倍数の時だけ気持ちよくなる。
以上の基本仕様から
1.3の倍数のみの場合
2.3のつく数字のみの場合
3.8の倍数のみの場合
4.3のつく数字と3の倍数と8の倍数を一緒にやった場合
という4つの実行結果を得られるように仕様追加してみました。 こんなコードは感じ。
1: using System;
2:
3: namespace 世界のナベアツ問題
4: { 5: public class 世界のナベアツ
6: { 7: public bool 三の倍数のときアホ { get; set; } 8:
9: public bool 三がつけばアホ { get; set; } 10:
11: public bool 八の倍数のとき気持ちよくなる { get; set; } 12:
13: public 世界のナベアツ()
14: { 15: 三の倍数のときアホ = false;
16: 三がつけばアホ = false;
17: 八の倍数のとき気持ちよくなる = false;
18: }
19:
20: public void 数えろ(int 数える数)
21: { 22: for (int 数 = 1; 数 <= 数える数; 数++)
23: { 24: bool isNotSaid = true;
25: if (三がつけばアホ && 数.ToString().IndexOf('3') != -1) 26: { 27: Console.Write("アホ "); 28: isNotSaid = false;
29: }
30: else if (三の倍数のときアホ && (数 % 3) == 0)
31: { 32: Console.Write("アホ "); 33: isNotSaid = false;
34: }
35:
36: if (八の倍数のとき気持ちよくなる && (数 % 8) == 0)
37: { 38: Console.Write("アハン "); 39: isNotSaid = false;
40: }
41:
42: if (isNotSaid)
43: { 44: Console.Write("{0} ", 数); 45: }
46: }
47: Console.WriteLine("\nどうもありがとうございましたー(・_・)>"); 48: }
49: }
50: }
以上、C# 3.0で書いたコードです。
まぁ、まだ改良の余地はあるのですが、ここではこれソースコードは以上触らないようにしておきます。
(もったいないので、どこかのセッションで題材として使わせてもらおうかなとか(^^;)
そして、以下が実行結果。
正月からくだらないもの出してすみません(^^;
作ってみたものの、作った自分が予想以上の脱力感でしたorz
もし、お暇でしたらご自分の「世界のナベアツ問題」をBlogで発表してもおもしろいかもしれません(^^;(ホントか?(^^;)
それでは今年も変わらずよろしくお願いしますm(__)m←ココ大事なとこ。