1. 程式人生 > 其它 >C++版浙大PAT乙級1002(20分)

C++版浙大PAT乙級1002(20分)

技術標籤:PAT

https://pintia.cn/problem-sets/994805260223102976/problems/994805324509200384

輸入一個正整數n,這裡保證n小於10^{100}。計算其各位數字之和,用漢語拼音寫出和的每一位數字。

#include<iostream>
#include<string>
using namespace std;
int main(){
	string n,sum_str;
	string num[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
	int sum = 0;
	// 輸入一串數字(以字串形式)
	while(cin >> n){
		// 遍歷每個數字,變成整型後加起來
		for (int i = 0; i < n.size(); i++)
	    {
	        sum += n[i] - '0';
	    }
	    // 把和變成字串
	    sum_str = std::to_string(sum);
	    // 遍歷每個字元數字,輸出對應拼音
	    for (int i = 0; i < sum_str.size(); i++)
	    {
	        cout<<num[sum_str[i]-'0'];
	        if(i<sum_str.size()-1){
	        	cout<<" ";
	        }
	    }
	    sum = 0;
	}
	return 0;
}