题目:

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:
1234567890987654321123456789
输出样例:
yi san wu

java参考答案:

    import java.awt.List;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    
    public class Main {
    
      public static void main(String[] args) {
        int sum = 0;
        
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        //把输入的字符串转换成字符数组
        char ch[] = s.toCharArray();
        //遍历数组
        for (char c : ch) {
          //求和:把字符数组中的字符先转换成字符串,在将字符串转成int类型
          sum += Integer.valueOf(String.valueOf(c));
        }
        //把和转换成字符串,载转换成字符数组
        char ch1[] = String.valueOf(sum).toCharArray();
        //定义一节集合,对应和中每个数字以及要输出的字符串
        Map<Character, String> m = new HashMap<>();
        m.put('0', "ling");
        m.put('1', "yi");
        m.put('2', "er");
        m.put('3', "san");
        m.put('4', "si");
        m.put('5', "wu");
        m.put('6', "liu");
        m.put('7', "qi");
        m.put('8', "ba");
        m.put('9', "jiu");
        //定义一个字符串,方便组拼输出结果(字符串)
        String sums=" ";
        //遍历由和转换的字符串数组
        for (char c : ch1) {
          //组拼字符串
          sums = sums+m.get(c)+" ";
          
        }
        //输出结果,去掉头和尾的空格
        System.out.print(sums.trim());
      }
    
    }

python2参考答案

#!/usr/bin/python
n = input()
l = ['ling', 'yi', 'er', 'san', 'si', 'wu', 'liu', 'qi', 'ba', 'jiu', 'shi']
s = str(n)
sum = 0
for i in s:
    sum += int(i)
sum_str = str(sum)
sum_sum = ''
for index, sum_i in enumerate(sum_str):
    sum_sum = sum_sum+l[int(sum_i)] if index == 0 else sum_sum+' '+l[int(sum_i)]
print sum_sum
Last modification:September 16, 2019
If you think my article is useful to you, please feel free to appreciate