PAT乙级题目——1002写出这个数

在这里插入图片描述
在这里插入图片描述
问题分析:1.数据比较大,并且输入数据时没有停顿,所有使用字符串来存储数据

string str="";
cin>>str;

2.使用字符串数组来存储每个数字的拼音

string S[10]=
			{
    
    "ling","yi","er","san","si",
			"wu","liu","qi","ba","jiu"};

3.从后往前得到数据的每位数,使用栈来逆序存储一下

栈的操作
入栈
stack.push();
出栈
stack.pop();

4.注意输出格式

完整的代码:

#include<iostream>
#include<stack>
using namespace std;
typedef long long ll;
string str="";
string S[10]={
    
    "ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
stack<int> mystack;
int main(){
    
    
	cin>>str;
	ll num=str.size();
	ll ans=0;
	for(ll i=0;i<num;i++){
    
    
		ans+=str[i]-'0';
	}

	//从各位向前    一位一位的输出 
	while(ans){
    
    
		mystack.push(ans%10);
		ans=ans/10;	
	}
	cout<<S[mystack.top()];
	mystack.pop();
	while(!mystack.empty()){
    
    
		cout<<" ";
		cout<<S[mystack.top()];
		mystack.pop();
	}
	 
	
} 

Guess you like

Origin blog.csdn.net/qq_50675813/article/details/121086425