最上位の桁を数え上げる

お仕事の息抜きにチャレンジ。やり始めると凝ってきてゴルフは楽しい。

LL Golf Hole 5 にチャレンジ!

http://ja.doukaku.org/200/

ちょっと調べた感じでは不評(?)な python の3項演算子を使ってみた。
ゴルフで書くと、さらにもっさり感が漂っている気がします(^ ^;;

他の投稿作品が再帰処理だったので、縦と横のマトリックス風に文字列操作を意識して解いてみました。

#!/bin/env python

def h(n, m=0, z=""):
    print m
    for i in n[::-1]:
        m = 10 if int(i)==0 else int(i)+1
        for j in range(1, m):
            print str(j) + z
        z += i

h("300")

実行結果。

0
1
2
3
4
5
6
7
8
9
10
20
30
40
50
60
70
80
90
100
200
300