题目内容
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
题目链接
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100^。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789
输出样例:yi san wu
思路
使用字符串存储数据,然后将将每个字符从字符串中提取出来,保存在一个数组中,最后从数组中提取出要输出的拼音数字
C++实现:
#include <iostream> #include <string> using namespace std; string Pingyin[10] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; int num[30] = {0}; int main (void) { string st; cin >> st; int sum = 0; for (int i = 0; i < st.size(); i++) { int temp; temp = st[i] - '0'; sum += temp; } int k = 0; //记录第几位 while (sum != 0) { int val = 0; val = sum % 10; sum = sum / 10; num[k] = val; k = k + 1; } for (int i = k - 1; i > 0; i--) { int temp; temp = num[i]; cout << Pingyin[temp] << " "; } cout << Pingyin[num[0]]; return 0; }