1002. 寫出這個數 (20)

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

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

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

輸入樣例:
1234567890987654321123456789
輸出樣例:

yi san wu

#include<iostream>
#include<string>
#include<cmath>
using namespace std;

int main(void)
{
	string n;   //因爲輸入的n值太大,所以採用字符串的方式
	int sum = 0;//初始化和爲0
	string s;   //用來將int型的和轉換爲string型
	cin >> n;
	int len = n.length(); //輸入的n的值的長度
	int a[100];
	for (int i = 0; i < len; i++)
	{
		a[i] = n[i] - 48; //將string型轉換爲int型
		sum += a[i];      //以進行求和操作
	}
	s = to_string(sum);   //將int型的和轉換爲string型
	for(int i=0;i<s.length();i++){
		switch (s[i]-48){ //將單個的字符轉換爲int型	
		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:
			break;
		}
		if (i != s.length() - 1)
		{  //輸出的格式要求,如果是最後一個數字了,就不用添加空格
			cout << " ";
		}
	}
	cout << endl;
	return 0;
}


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