pat甲级 1005 Spell It Right
题目:Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English.
给一个非负整数,你的任务是是计算数字n的每一位的和,然后用英语输出结果的每一位
non-negative:非负数
digits:位
输入格式:12345 N<10^100(所以使用string 不能使用int类型)
输出格式:one five(中间有空格)
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String a = scanner.next(); char arr[] = a.toCharArray(); List<Integer> list =new ArrayList<>(); int sum=0; for(int i=0;i<arr.length;i++){ sum = sum+arr[i]-48; } if(sum==0){//要考虑结果为0的情况 System.out.print("zero"); } while(sum!=0){ int num = sum%10; list.add(num); sum = sum/10; } for(int i=list.size()-1;i>=0;i--){ if(i==0) { switch (list.get(i)) { case 0: System.out.print("zero"); continue; case 1: System.out.print("one"); continue; case 2: System.out.print("two"); continue; case 3: System.out.print("three"); continue; case 4: System.out.print("four"); continue; case 5: System.out.print("five"); continue; case 6: System.out.print("six"); continue; case 7: System.out.print("seven"); continue; case 8: System.out.print("eight"); continue; case 9: System.out.print("nine"); continue; } } switch (list.get(i)){ case 0: System.out.print("zero ");continue; case 1: System.out.print("one ");continue; case 2: System.out.print("two ");continue; case 3: System.out.print("three ");continue; case 4: System.out.print("four ");continue; case 5: System.out.print("five ");continue; case 6: System.out.print("six ");continue; case 7: System.out.print("seven ");continue; case 8: System.out.print("eight ");continue; case 9: System.out.print("nine ");continue; } } } }