開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Ruby
『初めてのプログラミング 第2版』(Chris Pine 著、長尾 高弘 訳、オライリー・ジャパン、2010年、ISBN978-4-87311-469-9)の 10章(章全部で復習), 10.5(練習問題の続き)拡張 english_number を解いてみる。
その他参考書籍
- 『プログラミング言語 Ruby』David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-394-4)
- Rubyクックブック ―エキスパートのための応用レシピ集
拡張 english_number
コード(TextWrangler)
sample.rb
#!/usr/bin/env ruby1.9 #-*- coding: utf-8 -*- def english_number number return '0以上の数値を入力してください。' if number < 0 return 'zero' if number == 0 result = '' ones_place = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] tens_place = ['ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'] teenagers = ['eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen'] others = [['hundred',2], ['thousand',3], ['million',6], ['billion',9], ['trillion',12]] left = number while others.length > 0 other = others.pop write = left / (10 ** other[1]) left = left - write * (10 ** other[1]) if write > 0 hundreds = english_number write result = result + hundreds + ' ' + other[0] if left > 0 result += ' ' end end end write = left / 10 left = left - write * 10 if write > 0 if ((write == 1) and (left > 0)) result += teenagers[left - 1] left = 0 else result += tens_place[write - 1] end result += '-' if left > 0 end write = left left = 0 result += ones_place[write - 1] if write > 0 result end (999900..1000000).each do |number| puts "#{number}: #{english_number number}" end
入出力結果(Terminal)
$ ./sample.rb 999900: nine hundred ninety-nine thousand nine hundred 999901: nine hundred ninety-nine thousand nine hundred one 999902: nine hundred ninety-nine thousand nine hundred two 999903: nine hundred ninety-nine thousand nine hundred three 999904: nine hundred ninety-nine thousand nine hundred four 999905: nine hundred ninety-nine thousand nine hundred five 999906: nine hundred ninety-nine thousand nine hundred six 999907: nine hundred ninety-nine thousand nine hundred seven 999908: nine hundred ninety-nine thousand nine hundred eight 999909: nine hundred ninety-nine thousand nine hundred nine 999910: nine hundred ninety-nine thousand nine hundred ten 999911: nine hundred ninety-nine thousand nine hundred eleven 999912: nine hundred ninety-nine thousand nine hundred twelve 999913: nine hundred ninety-nine thousand nine hundred thirteen 999914: nine hundred ninety-nine thousand nine hundred fourteen 999915: nine hundred ninety-nine thousand nine hundred fifteen 999916: nine hundred ninety-nine thousand nine hundred sixteen 999917: nine hundred ninety-nine thousand nine hundred seventeen 999918: nine hundred ninety-nine thousand nine hundred eighteen 999919: nine hundred ninety-nine thousand nine hundred nineteen 999920: nine hundred ninety-nine thousand nine hundred twenty 999921: nine hundred ninety-nine thousand nine hundred twenty-one 999922: nine hundred ninety-nine thousand nine hundred twenty-two 999923: nine hundred ninety-nine thousand nine hundred twenty-three 999924: nine hundred ninety-nine thousand nine hundred twenty-four 999925: nine hundred ninety-nine thousand nine hundred twenty-five 999926: nine hundred ninety-nine thousand nine hundred twenty-six 999927: nine hundred ninety-nine thousand nine hundred twenty-seven 999928: nine hundred ninety-nine thousand nine hundred twenty-eight 999929: nine hundred ninety-nine thousand nine hundred twenty-nine 999930: nine hundred ninety-nine thousand nine hundred thirty 999931: nine hundred ninety-nine thousand nine hundred thirty-one 999932: nine hundred ninety-nine thousand nine hundred thirty-two 999933: nine hundred ninety-nine thousand nine hundred thirty-three 999934: nine hundred ninety-nine thousand nine hundred thirty-four 999935: nine hundred ninety-nine thousand nine hundred thirty-five 999936: nine hundred ninety-nine thousand nine hundred thirty-six 999937: nine hundred ninety-nine thousand nine hundred thirty-seven 999938: nine hundred ninety-nine thousand nine hundred thirty-eight 999939: nine hundred ninety-nine thousand nine hundred thirty-nine 999940: nine hundred ninety-nine thousand nine hundred forty 999941: nine hundred ninety-nine thousand nine hundred forty-one 999942: nine hundred ninety-nine thousand nine hundred forty-two 999943: nine hundred ninety-nine thousand nine hundred forty-three 999944: nine hundred ninety-nine thousand nine hundred forty-four 999945: nine hundred ninety-nine thousand nine hundred forty-five 999946: nine hundred ninety-nine thousand nine hundred forty-six 999947: nine hundred ninety-nine thousand nine hundred forty-seven 999948: nine hundred ninety-nine thousand nine hundred forty-eight 999949: nine hundred ninety-nine thousand nine hundred forty-nine 999950: nine hundred ninety-nine thousand nine hundred fifty 999951: nine hundred ninety-nine thousand nine hundred fifty-one 999952: nine hundred ninety-nine thousand nine hundred fifty-two 999953: nine hundred ninety-nine thousand nine hundred fifty-three 999954: nine hundred ninety-nine thousand nine hundred fifty-four 999955: nine hundred ninety-nine thousand nine hundred fifty-five 999956: nine hundred ninety-nine thousand nine hundred fifty-six 999957: nine hundred ninety-nine thousand nine hundred fifty-seven 999958: nine hundred ninety-nine thousand nine hundred fifty-eight 999959: nine hundred ninety-nine thousand nine hundred fifty-nine 999960: nine hundred ninety-nine thousand nine hundred sixty 999961: nine hundred ninety-nine thousand nine hundred sixty-one 999962: nine hundred ninety-nine thousand nine hundred sixty-two 999963: nine hundred ninety-nine thousand nine hundred sixty-three 999964: nine hundred ninety-nine thousand nine hundred sixty-four 999965: nine hundred ninety-nine thousand nine hundred sixty-five 999966: nine hundred ninety-nine thousand nine hundred sixty-six 999967: nine hundred ninety-nine thousand nine hundred sixty-seven 999968: nine hundred ninety-nine thousand nine hundred sixty-eight 999969: nine hundred ninety-nine thousand nine hundred sixty-nine 999970: nine hundred ninety-nine thousand nine hundred seventy 999971: nine hundred ninety-nine thousand nine hundred seventy-one 999972: nine hundred ninety-nine thousand nine hundred seventy-two 999973: nine hundred ninety-nine thousand nine hundred seventy-three 999974: nine hundred ninety-nine thousand nine hundred seventy-four 999975: nine hundred ninety-nine thousand nine hundred seventy-five 999976: nine hundred ninety-nine thousand nine hundred seventy-six 999977: nine hundred ninety-nine thousand nine hundred seventy-seven 999978: nine hundred ninety-nine thousand nine hundred seventy-eight 999979: nine hundred ninety-nine thousand nine hundred seventy-nine 999980: nine hundred ninety-nine thousand nine hundred eighty 999981: nine hundred ninety-nine thousand nine hundred eighty-one 999982: nine hundred ninety-nine thousand nine hundred eighty-two 999983: nine hundred ninety-nine thousand nine hundred eighty-three 999984: nine hundred ninety-nine thousand nine hundred eighty-four 999985: nine hundred ninety-nine thousand nine hundred eighty-five 999986: nine hundred ninety-nine thousand nine hundred eighty-six 999987: nine hundred ninety-nine thousand nine hundred eighty-seven 999988: nine hundred ninety-nine thousand nine hundred eighty-eight 999989: nine hundred ninety-nine thousand nine hundred eighty-nine 999990: nine hundred ninety-nine thousand nine hundred ninety 999991: nine hundred ninety-nine thousand nine hundred ninety-one 999992: nine hundred ninety-nine thousand nine hundred ninety-two 999993: nine hundred ninety-nine thousand nine hundred ninety-three 999994: nine hundred ninety-nine thousand nine hundred ninety-four 999995: nine hundred ninety-nine thousand nine hundred ninety-five 999996: nine hundred ninety-nine thousand nine hundred ninety-six 999997: nine hundred ninety-nine thousand nine hundred ninety-seven 999998: nine hundred ninety-nine thousand nine hundred ninety-eight 999999: nine hundred ninety-nine thousand nine hundred ninety-nine 1000000: one million $
0 コメント:
コメントを投稿