您的位置:首页 > 其它

PAT 1002 写出这个数 (20) (Basic Level)

2013-05-20 22:36 471 查看
题目:读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。输入样例:
1234567890987654321123456789

输出样例:
yi san wu

题目较简单,也不用判断输入的格式是否正确。代码如下(java):
import java.io.*;
import java.util.*;
public class Main
{
public static void main(String args[]){
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
String inputString = cin.next();
int sum = 0;
for(int i = 0;i < inputString.length();i++){
sum += Integer.parseInt(inputString.substring(i, i+1));
}
System.out.println(toString(sum));
}
}
public static String toString(int n){
String output = new String();
String s = Integer.toString(n);
for(int i = 0;i < s.length();i++){
if('0' == s.charAt(i) && i != 0)
output += " " + "ling";
else if('1' == s.charAt(i)){
if(0 == i)
output += "yi";
else
output += " " + "yi";
}
else if('2' == s.charAt(i)){
if(0 == i)
output += "er";
else
output += " " + "er";
}

else if('3' == s.charAt(i)){
if(0 == i)
output += "san";
else
output += " " + "san";
}

else if('4' == s.charAt(i)){
if(0 == i)
output += "si";
else
output += " " + "si";
}

else if('5' == s.charAt(i)){
if(0 == i)
output += "wu";
else
output += " " + "wu";
}
else if('6' == s.charAt(i)){
if(0 == i)
output += "liu";
else
output += " " + "liu";
}

else if('7' == s.charAt(i)){
if(0 == i)
output += "qi";
else
output += " " + "qi";
}

else if('8' == s.charAt(i)){
if(0 == i)
output += "ba";
else
output += " " + "ba";
}

else if('9' == s.charAt(i)){
if(0 == i)
output += "jiu";
else
output += " " + "jiu";
}

}
return output;

}
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: