カメヲラボ

主にプログラミングとお勉強全般について書いてます

CodeIQ過去問集31:英語でプリーズ!

本稿はCodeIQで2015年3月16日~6月8日に出題された コード銀行:英語でプリーズ! という問題を再編集したものです。 ※出題時と記述が一部異なる場合がありますがご了承ください。

英語でプリーズ!

【問題】

与えられた整数値を、英語に変換するプログラムを作成してください。 たとえば"123"なら"One Hundred Twenty Three"、"-50000"のような負の数は、"Negative Fifty Thousand"のように出力してください。 必要な英単語は1つのファイルにまとめてご用意しましたので、それをご活用ください(詳細は【解答方法】の項目をご覧ください)。

【入力】

入力はテキストファイルで用意されています。これを標準入力から読み込んでください。 入力ファイルの1行目には入力データ数N(1≦N≦100)が与えられます。 2行目以降のN行分の整数値を英語に変換してください。 ただし、入力データは符号付き32bit整数の範囲で収まるものに限ります。

【出力】

標準出力に、変換後の英語を出力してください(入力データ毎に改行してください)。 アルファベットの大文字・小文字は問いません。

【入出力例】

入力例

7
123
4567
89012
0
-34
-5678901
1111111111

出力例

One Hundred Twenty Three
Four Thousand Five Hundred Sixty Seven
Eighty Nine Thousand Twelve
Zero
Negative Thirty Four
Negative Five Million Six Hundred Seventy Eight Thousand Nine Hundred One
One Billion One Hundred Eleven Million One Hundred Eleven Thousand One Hundred Eleven

【解答方法】

english.zipをダウンロードし、展開してください。中には以下のファイルが含まれています。

  • sample.in.txt: 入力サンプルです
  • sample.out.txt: サンプルの解答です
  • testdata.in.txt: これを入力として、正しい実行結果が得られるプログラムを書いてください
  • words.txt: 英単語のデータファイルです(プログラム作成時にご利用ください)

(解答・解説は後日)