【九度OJ】:1010

来源:互联网 发布:制造业erp软件 编辑:程序博客网 时间:2024/06/06 00:46

题意:

通俗一点来说就是将字符串解析成数字并且求和

思路:

跟上一题一样,需要先解析成两个字符串数,然后求和,方法用到了String类的assign函数,其他的就是将字符串对应到数字上去,这种算法很简单,这里就不细讲了

AC代码:

#include <iostream>#include <string>using namespace std;int getnum(string s){    if(s=="zero"){        return 0;    }    if(s=="one"){        return  1;    }    if(s=="two"){        return 2;    }    if(s=="three"){        return 3;    }    if(s=="four"){        return 4;    }    if(s=="five"){        return 5;    }    if(s=="six"){        return 6;    }    if(s=="seven"){        return 7;    }    if(s=="eight"){        return 8;    }    if(s=="nine"){        return 9;    }}int split(string s){    string s1,s2;    int a,b;    for(int i=0;i<s.length();i++){        if(s[i]==' '){            s1.assign(s,0,i);            s2.assign(s,i+1,s.length()-i);            a = getnum(s1)*10;            b = getnum(s2);            return a+b;        }    }    return getnum(s);   //没有就直接返回}int main(){    string s,s1,s2;    int a,b;    while(getline(cin,s,'\n')){        for(int i=0;i<s.length();i++){            if(s[i]=='+'){                s1.assign(s,0,i-1);                s2.assign(s,i+2,(s.length()-4-i));            }        }        //cout<<s1<<""<<s2<<"1"<<endl;        if(s1=="zero" && s2=="zero"){            return 0;        }        a = split(s1);        b = split(s2);        cout<<a+b<<endl;    }    return 0;}
0 0
原创粉丝点击