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;
    }
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章