整数の漢数字表記
30分プログラム、その107。整数の漢数字表記。
無性にPythonが使いたくなったので、Pythonで。
使い方
$ jpnum 100 百 $ jpnum 1401 千四百一
ソースコード
どことなく、コインの両替と似ている。あれよりも、特殊な条件が多いけれど。
あ、両替関数と文字列化関数を分ければよかった。
#! /usr/bin/python # -*- mode:python; coding:utf-8 -*- # # jpnum.py - # # Copyright(C) 2007 by mzp # Author: MIZUNO Hiroki <hiroki1124@gmail.com> # http://mzp.sakura.ne.jp/ # # Timestamp: 2007/08/14 07:25:39 # # This program is free software; you can redistribute it and/or # modify it under the same terms as Python itself. # import sys def jpnum_sub(n): return ('一','二','三','四','五','六','七','八','九')[n-1] def jpnum(n,units): if len(units) == 1: return jpnum_sub(n) else: (size,name) = units[0] rest = jpnum(n % size,units[1:]) count = n / size if count == 0: return rest elif count == 1: return '%s%s' % (name,rest) else: return "%s%s%s" % (jpnum_sub(count),name,rest) if __name__ == '__main__': Units = [(1000,'千'),(100,'百'),(10,'十'),(1,'')] print jpnum(int(sys.argv[1]),Units)