LL Golf Hole 8 - 横向きのピラミッドを作る

LL Golf Hole 8 にて LL Golf Hole 8 - 横向きのピラミッドを作るというお題が出題されています。

こういう折り返しのある問題は、境界がどっちになるか頭で分からず、簡単なようでなかなかパッと一発で書くことができない問題なのかもしれません。 ただし、問題自体は決して難しくありません。

#! /usr/bin/gawk -f
# pyramid.awk

{

    # ピラミッドの底辺は $0 * 2 -1 の大きさ
    for (i = 1; i <= $0 * 2 - 1; i++) {

        # 半分までは増えて
        if (i <= $0) {
            j = i;
        # 途中から減る
        } else {
            j = $0 * 2 - i;
        }

        str = "";

        # 文字列を j 個連接
        while (j--) {
            str = str "*";
        }

        print str;
    }
}

実際に動かしてみましょう。

$ echo 4 | gawk -f pyramid.awk
*
**
***
****
***
**
*

ちゃんと解くことができました。 文字列を n 個連接するというのは Python の * 演算子があるといいのにと毎回思ってしまいます。

LL Future の案内

Lightweight Language Future ですが、今年は去年のエンディングでご紹介したとおり 8/30 (土) になかの ZERO にて開催されます。

見どころ満載なのですが、個人的には古い言語、新しい言語が一番気になります。 去年、VM 上で動作する LL の紹介では Java 上という限られた VM でしたが、さらにいろいろな VM (VM と言わないのかもしれませんが) を模索していってくれそうです。 俺のバカバカバカバカバカで「本物のプログラマは AWK を使う.みんなもっと近代計算機科学を作り上げた三巨人 Aho,Weinberger,Kerninghan に敬意を払いたまえ !」と言ってくださった若槻さんも発表者として参加してくださいます。

私自身、LL Future では実行委員をさせていただいており、受付など皆さんのお手伝いをさせていただくことになっています。 当日、お会いできることを期待しています。

tag_nawk.pngtag_nawk.pngtag_nawk.pngtag_nawk.png