我正在尝试打印原始号码的单词。但是当我试图输入20,30,40等时,我很挣扎。但是,输出将是" Tweero"而不是"二十"。我为零做了一个空字符串
String [] zero = {""};
然后在number = 0时发出一个If语句;
if (number == 0){
String result = zero[number];
System.out.print("");
number = In.nextInt();
}
但是,这根本不起作用。有没有人对此有任何想法。谢谢!
我的完整代码:
public class NumberToWords {
public static void main(String[] args) {
System.out.print("Number: ");
int number = In.nextInt();
int onesDigit;
int tensDigit;
String[] zero = {""};
String[] ones = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten",
"eleven", "tweleve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};
String[] tens = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
String[] hundreds = {"one hundred", "two hundred", "three hundred", "four hundred", "five hundred",
"six hundred", "seven hundred", "eight hundred", "nine hundred"};
while (number != -1) {
if (number == 0) {
String result = zero[number];
System.out.print("");
number = In.nextInt();
}
if (number < 20) {
String result = ones[number];
System.out.println("" + result);
System.out.print("Number: ");
number = In.nextInt();
}
if (number >= 20 && number <= 100) {
tensDigit = number / 10;
onesDigit = number % 10;
System.out.println("" + tens[tensDigit] + "" + ones[onesDigit]);
System.out.print("Number: ");
number = In.nextInt();
}
}
}
}
答案 0 :(得分:1)
我认为可以通过检查number
number
20 <= number <= 100
if (number >= 20 && number <= 100) {
tensDigit = number / 10;
onesDigit = number % 10;
if (onesDigit == 0) {
System.out.println("" + tens[tensDigit])
} else {
System.out.println("" + tens[tensDigit] + "" + ones[onesDigit]);
}
System.out.print("Number: ");
number = In.nextInt();
}
是否可以被10整除来解决这个问题。
(for [s (range 101), l (range (- 101 s)) :let [o (- 100 s l)]
:when (= 100 (+ (* s 5) (* l 3) (* o 1/3)))]
[s l o])