AcWing 3674. 中南a+b问题
原题链接
简单
作者:
绯色的花月
,
2022-02-13 15:44:57
,
所有人可见
,
阅读 199
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
string num[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int get_num(string s)
{
for (int i = 0; i < 10; i ++ )
if (s == num[i]) return i;
return -1;
}
int main()
{
string s;
while (getline(cin, s))
{
if (s == "zero + zero =") break;
int ans = 0;
for (int i = 0; i < s.size(); i ++ )
{
if (isalpha(s[i]))
{
string s1;
while(isalpha(s[i])) s1 += s[i ++ ];
int num1 = get_num(s1);
if (i + 1 < s.size() && isalpha(s[i + 1]))
{
i ++ ;
string s2;
while(isalpha(s[i])) s2 += s[i ++ ];
int num2 = get_num(s2);
ans += num1 * 10 + num2;
}
else ans += num1;
i -- ;
}
}
cout << ans << endl;
}
return 0;
}