1123.英語數(shù)字轉(zhuǎn)換器

題目地址
描述
在這個問題中谁不,將用英語給你一個或多個整數(shù)藏研。你的任務(wù)是將這些數(shù)字轉(zhuǎn)換成整型表示。數(shù)字范圍從-999,999,999到999,999,999.下面是你的程序必須考慮的詳盡的英語單詞表:
negative, zero, one, two, three, four,five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen,fifteen, sixteen, seventeen, eighteen, nineteen, twenty, thirty, forty, fifty,sixty, seventy, eighty, ninety, hundred, thousand, million
輸入
輸入包括多個樣例,注意:
1.負(fù)數(shù)前面有詞negative
2.當(dāng)能用thousand的時候,將不用hundred挤聘。例如1500將寫為"one thousand five hundred",而不是"fifteen hundred".
輸入將以一個空行結(jié)束
輸出
輸出將是每一個單獨一行,每一個后面一個換行符

樣例輸入
six
negative seven hundred twenty nine
one million one hundred one
eight hundred fourteen thousand twenty two

樣例輸出
6
-729
1000101
814022

分析
million thousand hundred 其實是三個等級捅彻,利用遞歸可將各級數(shù)目相加得解组去,而利用map可以建立英語輸入和實際數(shù)字的對應(yīng)關(guān)系。
反思
大神寫這題只用800k步淹,而我寫了1300k从隆,實在是化簡不了了$择桑花的時間也不短键闺,各種調(diào)試。又犯了不少低級錯誤如局部變量全局變量寫兩次澈驼,循環(huán)括號位置錯誤等等辛燥。

#include<iostream>
#include<map>
#include<string>
#include<vector>
using namespace std;
map<string,int> book; 
string abc[32]={"negative","zero","one","two","three","four","five","six",
"seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen",
"sixteen","seventeen","eighteen","nineteen","twenty","thirty","forty",
"fifty","sixty","seventy","eighty","ninety","hundred","thousand","million"};
int mindex[3]={1000000,1000,100};
int num[32]={-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,
30,40,50,60,70,80,90,100,1000,1000000};
vector<int> result;  
int getn(int i,int j){     //按層次在第i和第j個數(shù)中計算和
    int ans=0;
    for(int p=0;p<3;++p){
        for(int k=i;k<=j;++k){
            if (result[k]==mindex[p]){
                ans+=getn(i,k-1)*mindex[p];
                i=k+1;
                break;
            }
        }
    }
    for(;i<=j;++i)ans+=result[i];
    return ans; 
}
int main(){
    for(int i=0;i<32;++i)
        book.insert(make_pair(abc[i],num[i]));
    while(1){
        bool flag=0;
        string s;
        getline(cin,s);     //直接輸入字符串的函數(shù)getline()
        int len=s.size();
        if(len==0)break;
        int i=0,ans=0;
            for(int j=1;j<=len;++j)
                if(s[j]==' '||j==len){
                    result.push_back(book[s.substr(i,j-i)]);
                    i=j+1;
                    j+=2;
                }   
        if(result[0]==-1){
            flag=1;
            result.erase(result.begin(),result.begin()+1);
            --len;
        }
        if(flag)cout<<'-';
        cout<<getn(0,result.size()-1)<<endl;
        result.clear();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市盅藻,隨后出現(xiàn)的幾起案子购桑,更是在濱河造成了極大的恐慌畅铭,老刑警劉巖氏淑,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異硕噩,居然都是意外死亡假残,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門炉擅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辉懒,“玉大人,你說我怎么就攤上這事谍失】袅” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵快鱼,是天一觀的道長颠印。 經(jīng)常有香客問我纲岭,道長,這世上最難降的妖魔是什么线罕? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任止潮,我火速辦了婚禮,結(jié)果婚禮上钞楼,老公的妹妹穿的比我還像新娘喇闸。我一直安慰自己,他們只是感情好询件,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布燃乍。 她就那樣靜靜地躺著,像睡著了一般宛琅。 火紅的嫁衣襯著肌膚如雪橘沥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天夯秃,我揣著相機與錄音座咆,去河邊找鬼。 笑死仓洼,一個胖子當(dāng)著我的面吹牛介陶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播色建,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哺呜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了箕戳?” 一聲冷哼從身側(cè)響起某残,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎陵吸,沒想到半個月后玻墅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡壮虫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年澳厢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片囚似。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡剩拢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饶唤,到底是詐尸還是另有隱情徐伐,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布募狂,位于F島的核電站办素,受9級特大地震影響魏保,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摸屠,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一谓罗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧季二,春花似錦檩咱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桑嘶,卻和暖如春炊汹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逃顶。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工讨便, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人以政。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓霸褒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盈蛮。 傳聞我的和親對象是個殘疾皇子废菱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容