题目内容:
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
输入格式:
一个整数,范围是[-100000,100000]。
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。
输入样例:
-30
输出样例:
fu san ling
时间限制:500ms内存限制:32000kb
这个题我竟然提交了两次....,第一次有个样例没通过,一测果然是0的问题,所以顺便也提醒下边界,特殊值问题一定要考虑....
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n == 0) {
System.out.println("ling");
System.exit(0);
}
String[] arr = {
"ling", "yi", "er", "san", "si",
"wu", "liu", "qi", "ba", "jiu"
};
ArrayList<String> list = new ArrayList<String>();
int abs = Math.abs(n);
while(abs > 0) {
list.add(0, arr[abs%10]);
abs /= 10;
}
if(n < 0)
System.out.print("fu ");
for(int i = 0; i < list.size(); i++) {
if(i == list.size() - 1)
System.out.print(list.get(i));
else
System.out.print(list.get(i) + " ");
}
}
}
网友评论