PAT-写出这个数

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

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

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出:
yi san wu

#include <iostream>
#include <stack>
using namespace std;
int main(){
	string n;
	int sum=0;
	int temp=0;
	stack<int> s;
	cin>>n;
	for(int i=0;i<n.length();++i){
		sum+=n[i]-'0';//0的ASCII码为48,数字每位相减后与每位数值相等 
	}
	while(sum!=0){
		s.push(sum%10);
		sum/=10;
	}
	    while(!s.empty()){
	   		int temp=s.top();//返回栈顶元素
			   s.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;
			default:
			    cout<<"error"<<endl;	
		}
        if(!s.empty()){
            cout<<" ";
        }
}
	
	return 0;
}
发布了33 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/lz970704/article/details/105182662
今日推荐