PAT乙級,1002 寫出這個數 (20)(20 分)

題目鏈接

1002 寫出這個數 (20)(20 分)

讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。

輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裏保證n小於10^100^。

輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後一個拼音數字後沒有空格。

輸入樣例:

1234567890987654321123456789

輸出樣例:

yi san wu
#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
using namespace std;
string py[13]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi"};//存放從零開始的每個數的拼音
int main()
{
	string n,ans;
	int sum=0,x,i;
	cin>>n;
	for(i=0;i<n.size();i++)
	{
		x=n[i]-'0'; //利用ascii碼實現字符轉int  ,例如 ‘1’-‘0’=1
		sum+=x; 
	} 
    
    //利用stringstream實現int轉string	
	stringstream ss;
	ss<<sum; 
	ans=ss.str();
	

	for(i=0;i<ans.size() ;i++)
	{
		int temp=ans[i]-'0';
		cout<<py[temp];
		if(i!=ans.size()-1)cout<<" ";
	}
	
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章