1. 程式人生 > >PTA:1002 寫出這個數 (java)

PTA:1002 寫出這個數 (java)

package PTA;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;
/*
1002 寫出這個數 (20 分)
讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:
每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10
​100
輸出格式:
在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後一個拼音數字後沒有空格。
輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu
 */
public class Write_1002 {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String number=sc.next();
        HashMap<Integer,String> juge=new HashMap<>();
        juge.put(0,"ling");
        juge.put(1,"yi");
        juge.put(2,"er");
        juge.put(3,"san");
        juge.put(4,"si");
        juge.put(5,"wu");
        juge.put(6,"liu");
        juge.put(7,"qi");
        juge.put(8,"ba");
        juge.put(9,"jiu");
        int res=0;
        for (int i = 0; i <number.length() ; i++) {
            res+=(number.charAt(i)-48);
        }
        List<String> ress=new ArrayList<>();
        while (res>=10){
            int a=res%10;
            ress.add(juge.get(a));
            res/=10;
        }
        ress.add(juge.get(res));
        for (int i = ress.size()-1; i >0 ; i--) {
            System.out.print(ress.get(i)+" ");
        }
        System.out.print(ress.get(0));
    }
}