fork download
  1. #!ruby -Ku
  2. def f(x)
  3. @unit.inject('') do |s, u|
  4. x, d = x.divmod(10)
  5. s = u + s if d > 0
  6. s = @num[d] + s if d > 1 || d == 1 && u.empty?
  7. s
  8. end
  9. end
  10.  
  11. def g(x)
  12. return '零' if x == 0
  13. return '沢山' if x >= 10 ** (4 * @unit2.size)
  14. @unit2.inject('') do |s, u|
  15. x, d = x.divmod(10000)
  16. s = f(d) + u + s if d > 0
  17. s
  18. end
  19. end
  20.  
  21. @num = %w(零 一 二 三 四 五 六 七 八 九)
  22. @unit = [''] + %w(十 百 千)
  23. @unit2 = [''] + %w(万 億 兆 京 垓 予 穣 溝 澗 正 載 極 恒河沙 阿僧祇 那由多 不可思議 無量大数)
  24.  
  25. puts g(200030001000047810478801748017480174803748971890478921047801749032174)
Success #stdin #stdout 0.02s 7460KB
stdin
Standard input is empty
stdout
二無量大数三不可思議一那由多四千七百八十一恒河沙四百七十八極八千十七載四千八百一正七千四百八十澗千七百四十八溝三百七十四穣八千九百七十一予八千九百四垓七千八百九十二京千四十七兆八千十七億四千九百三万二千百七十四