题解 | #学英语#

学英语

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static String[] ones = new String[] {
        "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
        "ten", "eleven", "twelve", "thirteen", "forteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"
    };
    public static String[] twieties = new String[] {"zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
    public static void main(String[] args) throws IOException {
        BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while ((str = buf.readLine()) != null) {
            if (str.length() <= 9) {
                System.out.println(getEn(Integer.parseInt(str)));
            } else {
                System.out.println("error");
            }
        }
    }
    public static String getEn(int num) {
        String stren = "error";
        if ( num <= 20) {
            stren = ones[num];
        } else if (num < 100) {
            int remainder = num % 10;
            if (remainder == 0) {
                stren = twieties[num / 10];
            } else {
                stren = twieties[num / 10] + " " + ones[remainder];
            }
        } else if (num < 1000) {
            int remainder = num % 100;
            if (remainder == 0) {
                stren = ones[num / 100] + " hundred";
            } else {
                stren = ones[num / 100] + " hundred and " + getEn(remainder);
            }
        } else if (num < 1000000) {
            int remainder = num % 1000;
            if (remainder == 0) {
                stren = getEn(num / 1000) + " thousand";
            } else {
                stren = getEn(num / 1000) + " thousand " + getEn(remainder);
            }
        } else if (num < 1000000000) {
            int remainder = num % 1000000;
            if (remainder == 0) {
                stren = getEn(num / 1000000) + " million";
            } else {
                stren = getEn(num / 1000000) + " million " + getEn(remainder);
            }
        }
        return stren;
    }
}

全部评论

相关推荐

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