读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789
输出样例:
yi san wu
============================
第一次code:
1 import java.util.Scanner; 2 3 public class Main 4 { 5 public static void main(String[] args) 6 { 7 Scanner input = new Scanner(System.in); 8 System.out.println(change(run(input.nextLine()))); 9 } 10 /* 11 * 输入一个字符串 12 * 讲字符串转换成字符串数组 13 * 转换数组中的数据类型,求和 14 * 返回一个int型数据 15 */ 16 public static int run(String n) 17 { 18 int s = 0; 19 char[] a = n.toCharArray(); 20 for(int i=0;i<a.length;i++) 21 { 22 s += Integer.valueOf(String.valueOf(a[i])); 23 } 24 return s; 25 } 26 /* 27 * 对int型数据进行处理 28 * 先转换成String类型,在转换成char数组 29 * 对char数组中的数据进行判断,分别对应各数字的拼音 30 * 将数组拼接成一个字符串,输出 31 */ 32 public static String change(int n) 33 { 34 char[]a=String.valueOf(n).toCharArray(); 35 String[]b = {"yi","er","san","si","wu","liu","qi","ba","jiu","ling"}; 36 String[]c = new String[a.length]; 37 for(int i=0;i<a.length;i++) 38 { 39 switch(Integer.valueOf(String.valueOf(a[i]))) 40 { 41 case 1: c[i]=b[0];break; 42 case 2: c[i]=b[1];break; 43 case 3: c[i]=b[2];break; 44 case 4: c[i]=b[3];break; 45 case 5: c[i]=b[4];break; 46 case 6: c[i]=b[5];break; 47 case 7: c[i]=b[6];break; 48 case 8: c[i]=b[7];break; 49 case 9: c[i]=b[8];break; 50 case 0: c[i]=b[9];break; 51 } 52 } 53 String d=""; 54 for(int i=0;i<c.length;i++) 55 { 56 if(i==0) 57 { 58 d +=c[i]; 59 } 60 else 61 { 62 d +=(" "+c[i]); 63 } 64 } 65 return d; 66 } 67 } 68