PAT-乙級-Java-1002
阿新 • • 發佈:2018-11-11
1002 寫出這個數 (20 分)
讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:
每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10100。
輸出格式:
在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後一個拼音數字後沒有空格。
輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu
Java程式碼實現:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); String inputData = input.next(); int length = inputData.length(); String substring = null; int sum = 0; for(int i =0;i<length;i++){ substring = inputData.substring(i,i+1); int data = Integer.parseInt(substring); sum += data; } Integer sumInt = Integer.valueOf(sum); String sumString = sumInt.toString(); int sumLen = sumString.length(); StringBuffer result = new StringBuffer(); String transform = ""; for(int i = 0;i<sumLen;i++){ transform = transform(sumString.substring(i,i+1)); if(i == sumLen-1){ transform = transform.trim(); } result.append(transform); } System.out.println(result); } public static String transform(String data){ String chinese = ""; switch (data) { case "0": chinese ="ling "; break; case "1": chinese = "yi "; break; case "2": chinese = "er "; break; case "3": chinese = "san "; break; case "4": chinese = "si "; break; case "5": chinese = "wu "; break; case "6": chinese = "liu "; break; case "7": chinese = "qi "; break; case "8": chinese = "ba "; break; case "9": chinese = "jiu "; break; default: break; } return chinese; } }