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: 英単語のデータファイルです(プログラム作成時にご利用ください)
(解答・解説は後日)