题解 | #学英语#
学英语
https://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Scanner;
public class Main {
static String[] num1=new String[]{"zero","one","two","three","four","five","six", "seven","eight","nine","ten","eleven","twelve", "thirteen","fourteen","fifteen","sixteen", "seventeen","eighteen","nineteen"};
static String[] num2=new String[] {"","","twenty","thirty","forty","fifty","sixty", "seventy","eighty","ninety"};
public static String transIn100(int num) { StringBuilder sb = new StringBuilder(); if(num>0 && num<20) { sb.append(num1[num]+" "); }else { sb.append(num2[num/10]+" "); if(num%10!=0) sb.append(num1[num%10]+" ");
} return sb.toString();
}
public static String transIn1000(int num) { StringBuilder sb = new StringBuilder(); if(num>=100) { sb.append(transIn100(num/100)); sb.append("hundred "); if(num%100!=0) { sb.append("and "); } } sb.append(transIn100(num%100)); return sb.toString();
}
public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); long longVal = scan.nextLong(); StringBuilder sb =new StringBuilder(); int resBil = (int) (longVal/1e9); if(resBil>0) { String res = transIn1000(resBil)+"billion "; sb.append(res); } longVal = longVal % 1000000000; int resMil = (int) (longVal/1000000); if(resMil>0) { String res = transIn1000(resMil)+"million "; sb.append(res); } longVal = longVal % 1000000; int resThousand = (int) (longVal/1000); if(resThousand>0) { String res = transIn1000(resThousand)+"thousand "; sb.append(res); } longVal = longVal % 1000; if(longVal>0) { String res = transIn1000((int)longVal); sb.append(res); } System.out.println(sb.toString().trim()); }
}