Give me the number数字単語回転数(シミュレーション)
Give me the number
Time Limit:1000MS Memory Limit:65536K Total Submit: Accepted:
Description
英語では、数字は以下のように書かれています(現在は10^9未満の数字しか考えられません).数字abc,def,ghiは「[abc]million[def]thousand[ghi]」と記す.ここで「[xyz]」は3桁のxyzを表す.abc=0であれば「[abc]million」は省略され、def=0であれば「[def]thousand」も省略され、ghi=0であれば「[ghi]」も省略される.全体の数が0なら「ゼロ」と書きます.複数の「million」または複数の「thousand」があっても、単語「million」と「thousand」は単数形式であることに注意してください.千未満の数字は次のように表されます.数字xyzは「[x]hundred and[yz]」と表記します.(yz=0の場合、それは「[x]hundred」です.そうでない場合、y=0の場合、「[x]hundred and[z]」と表記します.)x=0の場合、「[x]hundred and」は省略されます.「hundred」も単数形式であることに気づく.20以下の数字は「zero」、「one」、「two」、「three」、「four」、「five」、「six」、「seven」、「eight」、「nine」、「ten」、「eleven」、「twelve」、「thirteen」、「fourteen」、「fifteen」、「sixteen」、「seventeen」、「eighteen」および「nineteen」と記す.20~99の間の数字は次の方法で表されます.数字xyは「[x 0][y]」と表記し、その中の「20」から「90」は「twenty」、「thirty」、「forty」、「fifty」、「sixty」、「seventy」、「eighty」、and「ninety」と表記する.例えば、数字987654312は「nine hundred and eighty seven million six hundred and fifty four thousand three hundred and twelve」数字10000037は「one hundred million thirty seven」、数字1000は「one thousand」と表記される.注意:百万、千、百に対して「one」は省略されません.英語で表される数字を与え、対応するアラビア数字の形式の整数を書いてください.
Input
複数のテスト例があります.入力された最初の行は整数T(1<=T<=1900)であり、試験例の個数を表す.次はT個のテスト例です.各テスト例は1行を占め、1つの数字を表す英語の単語の列です.
Output
各行に入力された英数字に対応し、対応するアラビア数字の整数を出力し、1行ずつ出力します.すべての整数が109未満であると仮定します.
Sample Input
Sample Output
コードと解題の構想は以下の通りである.
#include
#include
#include
Time Limit:1000MS Memory Limit:65536K Total Submit: Accepted:
Description
英語では、数字は以下のように書かれています(現在は10^9未満の数字しか考えられません).数字abc,def,ghiは「[abc]million[def]thousand[ghi]」と記す.ここで「[xyz]」は3桁のxyzを表す.abc=0であれば「[abc]million」は省略され、def=0であれば「[def]thousand」も省略され、ghi=0であれば「[ghi]」も省略される.全体の数が0なら「ゼロ」と書きます.複数の「million」または複数の「thousand」があっても、単語「million」と「thousand」は単数形式であることに注意してください.千未満の数字は次のように表されます.数字xyzは「[x]hundred and[yz]」と表記します.(yz=0の場合、それは「[x]hundred」です.そうでない場合、y=0の場合、「[x]hundred and[z]」と表記します.)x=0の場合、「[x]hundred and」は省略されます.「hundred」も単数形式であることに気づく.20以下の数字は「zero」、「one」、「two」、「three」、「four」、「five」、「six」、「seven」、「eight」、「nine」、「ten」、「eleven」、「twelve」、「thirteen」、「fourteen」、「fifteen」、「sixteen」、「seventeen」、「eighteen」および「nineteen」と記す.20~99の間の数字は次の方法で表されます.数字xyは「[x 0][y]」と表記し、その中の「20」から「90」は「twenty」、「thirty」、「forty」、「fifty」、「sixty」、「seventy」、「eighty」、and「ninety」と表記する.例えば、数字987654312は「nine hundred and eighty seven million six hundred and fifty four thousand three hundred and twelve」数字10000037は「one hundred million thirty seven」、数字1000は「one thousand」と表記される.注意:百万、千、百に対して「one」は省略されません.英語で表される数字を与え、対応するアラビア数字の形式の整数を書いてください.
Input
複数のテスト例があります.入力された最初の行は整数T(1<=T<=1900)であり、試験例の個数を表す.次はT個のテスト例です.各テスト例は1行を占め、1つの数字を表す英語の単語の列です.
Output
各行に入力された英数字に対応し、対応するアラビア数字の整数を出力し、1行ずつ出力します.すべての整数が109未満であると仮定します.
Sample Input
4
one
eleven
one hundred and two
two hundred million seven hundred and one thousand two hundred and ten
Sample Output
1
11
102
200701210
コードと解題の構想は以下の通りである.
#include
#include
#include