题目内容:
1002 写出这个数 (20 分)
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
结尾无空行
输出样例:
yi san wu
结尾无空行
java代码实现:
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
int sum=0;
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine(); //nextLine()获取用户输入的字符串
char[] ch=new char[str.length()];
for(int i=0;i<str.length();i++)
ch[i]=str.charAt(i); //char型数组依次接收str字符串的每个字符
for(int i=0;i<str.length();i++)
sum+=(ch[i]-'0'); //char数组依次求和结果转化为int型
String s=String.valueOf(sum); //String.valueOf(sum)将int型sum再次转化为字符串
char[] c=new char[s.length()];
for(int i=0;i<s.length();i++)
c[i]=s.charAt(i); //c型数组依次接收s字符串的每个字符
for(int i=0;i<s.length();i++)
{
switch(c[i])
{
case '0':System.out.print("ling ");break;
case '1':System.out.print("yi ");break;
case '2':System.out.print("er ");break;
case '3':System.out.print("san ");break;
case '4':System.out.print("si ");break;
case '5':System.out.print("wu ");break;
case '6':System.out.print("liu ");break;
case '7':System.out.print("qi ");break;
case '8':System.out.print("ba ");break;
case '9':System.out.print("jiu ");break;
}
if(i<s.length()-1) //保证最后一个拼音数字没有空格
System.out.println(" ");
}
}
}