Я создаю программу, которая читает числа в диапазоне от 0 до 99, а затем возвращает это число словами.У меня все остальные номера работают, но я не могу понять, как получить числа между 111 - 119, 211 - 219, 311 - 319 и т. Д. Вплоть до 911 - 919. Можете ли вы помочь?Спасибо!
Я попытался изменить numones = number%10;
на numones = number%100;
, но не удается прочитать все остальные числа и вызывает ошибку array outofbounds
.
public static void main(String[] args) {
int numones;
int numtens;
int numhundreds;
String [] ones = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten",
"eleven", "twelve", "thirteen", "fourteen", "fiveteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"};
String [] tens = {"","", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};
System.out.print("Number: ");
int number = In.nextInt();
while(number !=- 1) {
if (number >= 100 && number <= 999) {
numhundreds = number / 100;
numtens = number/10%10;
numones = number%10;
if (number == 100 || number == 200 || number == 300 || number == 400 || number == 500
|| number == 600 || number == 700 || number == 800 || number == 900){
System.out.println("" + ones[numhundreds] + " " + "hundred");
System.out.print("Number: ");
number = In.nextInt();
}else{
System.out.println("" + ones[numhundreds] + " " + "hundred and " + tens[numtens] + " " + ones[numones]);
System.out.print("Number: ");
number = In.nextInt();
}
}
}
}
}
Когда вводится 111, выходное значение равно ста единице, когда должно быть сто одиннадцать.