ネタ元: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←ココ大事なとこ。