写出这个数
写出这个数
原创 EShyee EShyee 2019-09-26
写出这个数
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1 | 1234567890987654321123456789 |
输出样例:
1 | yi san wu |
My answer:
package com.Eshyee.SumIn;
import java.util.Scanner;
public class Sum {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//输入这个字符串
String s = in.nextLine();
int a = 0;
String c = “\0”;
for (int i = 0; i < s.length(); i++) {
//把字符串转换成int类型
a += s.charAt(i) - 48;
}
String n = String.valueOf(a);
for (int j = 0; j < n.length(); j++) {
int b = 0;
b = n.charAt(j) - 48;
//这里相当于把数字转换成汉字
switch (b) {
case 1:
c += “yi”;
break;
case 2:
c += “er”;
break;
case 3:
c += “san”;
break;
case 4:
c += “si”;
break;
case 5:
c += “wu”;
break;
case 6:
c += “liu”;
break;
case 7:
c += “qi”;
break;
case 8:
c += “ba”;
break;
case 9:
c += “jiu”;
break;
case 0:
c += “ling”;
break;
}
c += “ “;
}
System.out.print(c.trim());
}
}
本道题主要用到switch case charAt ascii码等方面的知识点
主要思想是:
先获取一串字符,然后遍历字符串,分别转换成int类型
此时的int是ascii码值 然后减48 获得真正的值
然后做累加 然后放到一个int里面 做一个switch case(笨办法)
将得到的这个值转换成汉字
最后System从console里面输出出来