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. Нас ни плашеха много с масиви, но не са кой знае какво. Смело взимай материала напред и не чакай да дойде време за лекции.