题解 | #学英语#

学英语

https://www.nowcoder.com/practice/1364723563ab43c99f3d38b5abef83bc

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] nums = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "forteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
        String[] ties = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
        String[] units = {"", "thousand", "million", "billion"};
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLong()) { // 注意 while 处理多个 case
            String ans = "";
            int unit = 0;
            for (long n = in.nextLong(); n != 0; n /= 1000) {
                int m = (int) n % 1000, bit = m % 10, ten = m / 10 % 10, hundred = m / 100;
                String part = "";
                if (hundred > 0) {
                    part += nums[hundred] + " hundred ";
                    if (ten > 0 || bit > 0) {
                        part += "and ";
                    }
                }
                if (ten < 2) {
                    part += nums[m % 100] + " ";
                } else {
                    part += ties[ten] + " ";
                    if (bit > 0) {
                        part += nums[bit] + " ";
                    }
                }
                ans = part + units[unit++] + " " + ans;
            }
            System.out.println(ans);
        }
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务