//1005. Spell It Right(20)
#include <iostream>
#include <cstring>
#include <sstream>
#include <stack>
using namespace std;
int main() {
/*若第23行至29行代码替换为如下注释部分,则部分测试点错误,原因不明
int N;
int sum = 0;
cin >> N;
string s = to_string(N);
int len = s.length();
for (int i = 0; i<len; i++) {
sum = sum + s[i] - '0';
}
*/
char s[1000];
int sum = 0;
cin >> s;
int len =strlen(s);
for (int i = 0; i<len; i++) {
sum = sum + s[i] - '0';
}
string s1 = to_string(sum);
int len1 = s1.length();
for (int i = 0; i < len1; i++) {
switch (s1[i]) {
case '1':cout << "one"; break;
case '2':cout << "two"; break;
case '3':cout << "three"; break;
case '4':cout << "four"; break;
case '5':cout << "five"; break;
case '6':cout << "six"; break;
case '7':cout << "seven"; break;
case '8':cout << "eight"; break;
case '9':cout << "nine"; break;
case '0':cout << "zero"; break;
default:break;
}
if (i != len1 - 1)
cout << " ";
}
cout << endl;
/*第32行至51行代码可以替换为如下注释段
stack<int> stk;
do
{
int temp = sum % 10;
stk.push(temp);
sum /= 10;
} while (sum != 0);
//输出,empty判断堆栈是否为空
while (!stk.empty())
{ //得到堆栈栈顶数据
int t = stk.top();
switch (t) {
case 1:cout << "one"; break;
case 2:cout << "two"; break;
case 3:cout << "three"; break;
case 4:cout << "four"; break;
case 5:cout << "five"; break;
case 6:cout << "six"; break;
case 7:cout << "seven"; break;
case 8:cout << "eight"; break;
case 9:cout << "nine"; break;
case 0:cout << "zero"; break;
default:break;
}
if ((int)stk.size() > 1)
cout << " ";
//pop弹出栈顶的元素
stk.pop();
}
cout << endl;*/
return 0;
}
PAT(Advanced Level)1005. Spell It Right (20) 栈 int转string
最新推荐文章于 2019-02-11 21:36:49 发布