02. English Name of the Last Digit - Basic Syntax, Conditional Statements and Loops
Здравейте, от няколко дни се мъча с въпросната задача. В Judge ми дава грешка на трети тест, резултат 80/100, но не показва защо. Четох предишни теми от C# Fundamentals по същия проблем във форума и там казват, че integer се препълва, затова пробвах с long. И с long не става, пускам кода:
import java.util.Scanner;
public class EnglishNameOfTheLastDigit {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long number = Long.parseLong(scanner.nextLine());
long absNum = Math.abs(number);
long lastNum = number % 10;
String englishNumName = "";
if (lastNum == 1) {
englishNumName = "one";
} else if (lastNum == 2) {
englishNumName = "two";
} else if (lastNum == 3) {
englishNumName = "three";
} else if (lastNum == 4) {
englishNumName = "four";
} else if (lastNum == 5) {
englishNumName = "five";
} else if (lastNum == 6) {
englishNumName = "six";
} else if (lastNum == 7) {
englishNumName = "seven";
} else if (lastNum == 8) {
englishNumName = "eight";
} else if (lastNum == 9) {
englishNumName = "nine";
} else if (lastNum == 0) {
englishNumName = "null";
}
System.out.println(englishNumName);
}
}
Благодаря много, стана =)
Възможно ли е задачата да се реши без масив, понеже още не сме го учили?
Пробвай с char lastDigit = charAt(numbersAsString.length - 1);
Това което прави той е да преобразува стринга в масив от чарове и взима последния елемент от масива. Масива ще изглежда поредица от клетки които си имат позиция. Всяка клетка съдържа чар от стринга. Например при вход 1340: [0] = '1', [1] = '3', [2] = '4', [3] = '0'. Дължина на масива е от 0 до string.length - 1. Нас ни плашеха много с масиви, но не са кой знае какво. Смело взимай материала напред и не чакай да дойде време за лекции.