2014年06月01日

C#でピラミッドを作る

   このエントリーをはてなブックマークに追加 Clip to Evernote
どう書く?orgに感謝を込めて」シリーズ その12

■問題 (出題者: にしお さん)
正の整数nが与えられたときに、高さnのピラミッドを出力するプログラムを作ってください。 n=4の時の出力は下のようになります。
   *
  ***
 *****
*******

ノーマルな方法と再帰版の2つを書いてみました。

■C#で書いたコード

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Doukaku.Org {
    class Program {
        static void Main(string[] args) {
            Pyramid(1);
            Pyramid(3);
            Pyramid(4);
            Pyramid2(5);
            Pyramid2(6);
            Console.ReadLine();
        }

        // ノーマルな方法
        static void Pyramid(int n) {
            for (int i = 0; i < n; i++) {
                Console.WriteLine(new string(' ', n - i - 1) +
                                  new string('*', i * 2  + 1));
            }
        }

        // 再帰処理で
        static void Pyramid2(int n) {
            PyramidRec(1, n - 1);
        }
        // '*'の数:1,3,5,7,9... , n=5のとき、' 'の数: 4,3,2,1,0
        static void PyramidRec(int star, int space) {
            if (space < 0)
                return;
            Console.WriteLine(new string(' ', space) + new string('*', star));
            PyramidRec(star + 2, space - 1);
        }
    }
}


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52369859