首页 > 代码库 > java实现读入一个数n,计算其各位数字之和,用汉语拼音写出和的每一位数字

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

今天看到一篇文章:【原始链接】

题目是“读入一个数n,计算其各位数字之和,用汉语拼音写出和的每一位数字”,是用c语言实现的。由于我目前正在学习java,所以想用java来实现下。

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

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Int_to_String {

    public static void main(String[] args) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        try {
            int sum = 0 ;
            String str = br.readLine();
            //解决超出int类型问题。将字符串用字符数组装起来。
            char[] ch = str.toCharArray();
            for (int i = 0 ; i < ch.length ; i ++) {
                //求和
                sum +=  new Integer(""+ch[i]).intValue();
            }
            System.out.println(print_f(sum));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null) {
                    br.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    public static String print_f(int sum) {
        int k = 1;
        int m = sum;
        String str = "";
        while (m >= 10) {
            k *= 10 ;
            m /= 10;
        }
        while(k != 0) {
            str += int_to_String(sum / k)+" ";
            sum %= k;
            k /= 10;
        }
        return str.substring(0, str.length()-1);
    }

    //转换
    public static String int_to_String(int n) {
        String ss = "";
        switch (n) {
        case 0:
            ss = "ling";
            break;
        case 1:
            ss = "yi";
            break;
        case 2:
            ss = "er";
            break;
        case 3:
            ss = "san";
            break;
        case 4:
            ss = "si";
            break;
        case 5:
            ss = "wu";
            break;
        case 6:
            ss = "liu";
            break;
        case 7:
            ss = "qi";
            break;
        case 8:
            ss = "ba";
            break;
        case 9:
            ss = "jiu";
            break;
        default:
            break;
        }
        return ss;
    }
}




本文出自 “橙子的成长记录” 博客,请务必保留此出处http://azhome.blog.51cto.com/9306775/1546766

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