重要内容 欢迎来到程序设计竞赛交流平台!
算法设计 当前位置:首页 > 教程 > 算法设计

[PTA]1002 写出这个数 (20分)

内容摘要:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 100 。输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字......

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 

输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10 100 。 

输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 

输入样例: 

1234567890987654321123456789

输出样例: 

yi san wu

参考代码:

import java.util.Scanner;
public class Main {
	private int sum = 0;
	public void show(String num) {
		int i;
		String str = "";
		for (i = 0; i < num.length(); i++) {
			sum += (num.charAt(i) - '0');
		}
		for(i=0;sum>0;i++){
			str = toCn(sum % 10) + (i>0?" ":"") + str;
			sum /= 10;
		}
		System.out.println(str);
	}
	
	public String toCn(int num){
		String res = "";
		switch(num){
		case 0:res = "ling";break;
		case 1:res = "yi";break;
		case 2:res = "er";break;
		case 3:res = "san";break;
		case 4:res = "si";break;
		case 5:res = "wu";break;
		case 6:res = "liu";break;
		case 7:res = "qi";break;
		case 8:res = "ba";break;
		case 9:res = "jiu";break;
		}
		return res;
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String num = in.next();
		Main t = new Main();
		t.show(num);
		in.close();
	}
}
相关评论
©2014-2020 ACM之家 版权所有  贵公网安备52273202000108号  黔ICP备18000376号