PAT乙级-1002-写出这个数

165 阅读1分钟

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​100​​。

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

#include<iostream> 

#include<stack> 

using namespace std; 

int main(){

 string str; 

int sum=0,temp;

 bool start=true; cin>>str; 

for(int i=0;i<str.length();i++){ 

 sum+=(str[i]-'0'); 

 } 

stack <int>sta;//做一个sta的栈 

 while(sum!=0){ sta.push(sum%10);//结果入栈 

 sum /=10; } 

while(!sta.empty()){ 

 if(start)start=false;

 else cout<<" "; 

 temp=sta.top();

 sta.pop();//出栈操作 

 switch(temp){ 

 case 0:cout<<"ling";break;

 case 1:cout<<"yi";break;

 case 2:cout<<"er";break; 

 case 3:cout<<"san";break; 

 case 4:cout<<"si";break; 

 case 5:cout<<"wu";break; 

 case 6:cout<<"liu";break; 

 case 7:cout<<"qi";break; 

 case 8:cout<<"ba";break;

   case 9:cout<<"jiu";break; 

 }

 }

 system("pause"); return 0; }