PAT-1002. 写出这个数 (20)--java
2018-01-03 11:15
477 查看
1002. 写出这个数 (20)
时间限制400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
---此代码,在eclipse中完好运行,但在PAt提交中出错~~
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class Demo { public static void main(String[] args) { Map<Character,String> m=new HashMap<>(); m.put('0', "ling"); m.put('1', "yi"); m.put('2', "er"); m.put('3', "san"); m.put('4', "si"); m.put('5', "wu"); m.put('6', "liu"); m.put('7', "qi"); m.put('8', "ba"); m.put('9', "jiu"); Scanner sc=new Scanner(System.in); //int n =sc.nextInt();此处不应用int,太小了,而且各个数值不好相加,应利用String中的index(索引) String str=sc.next(); char [] ch=str.toCharArray();//将此字符串转换为一个新的字符数组。 int sum =0;
for (char chi:ch){//for(循环变量类型 循环变量名称:要遍历的对象){} sum=sum+Integer.parseInt(String.valueOf(chi)); }//parseInt将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的
//ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值, //valueOf(String s)返回保存指定的 String 的值的 Integer 对象。 char [] ch1=String.valueOf(sum).toCharArray(); StringBuffer str1=new StringBuffer();
for(char chii:ch1){ str1.append(""); str1.append(m.get(chii)); } System.out.println(str1.toString()); System.out.println(str1.toString().trim());//此字符串移除了前导和尾部空白的副本;如果没有前导和尾部空白,则返回此字符串 } }
相关文章推荐
- PAT 乙级 1002. 写出这个数 (20) Java版
- Java - PAT - 1002. 写出这个数 (20)
- PAT 1002. 写出这个数 (20) —— Java
- PAT1002 写出这个数 (20) JAVA
- PAT 乙级 1002. 写出这个数 (20) Java版
- PAT (Basic Level) Practise (中文)1002. 写出这个数 (20)(java实现)
- PAT:1002. 写出这个数 (20)
- PAT (Basic Level) Practise (中文)1002. 写出这个数 (20)
- 编程题目:PAT 1002. 写出这个数 (20)
- PAT(Basic Level) 1002. 写出这个数 (20)
- PAT乙级 1002. 写出这个数 (20)
- PAT-B 1002. 写出这个数 (20)
- PAT乙级1002. 写出这个数 (20)
- PAT乙级 1002. 写出这个数 (20)
- pat 乙级 1002. 写出这个数 (20)
- PAT - 1002. 写出这个数 (20)
- PAT乙级1002. 写出这个数 (20)
- PAT:B1002. 写出这个数 (20)
- PAT-乙级-1002. 写出这个数 (20)
- 编程题目:PAT 1002. 写出这个数 (20)