第四周深入循环_念整数

题目内容:

你的程序要读入一个整数,范围是[-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 list = new ArrayList();

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) + " ");

}

}

}

你可能感兴趣的:(第四周深入循环_念整数)