Професионална програма
Loading...
+ Нов въпрос
NevenaHristova3 avatar NevenaHristova3 0 Точки

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);
        }
    }

 

Тагове:
0
Module: Java Advanced
VasilKotsev avatar VasilKotsev 824 Точки

Ако ти подам числото: "1340", "null" ли трябва да очаквам като изходен низ ? Ето малко по-изчистено решение ако ти е от полза.

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String numberAsString = scanner.nextLine();

        char lastDigit = numberAsString.toCharArray()[numberAsString.length() - 1];
        String output;

        switch (lastDigit) {
            case '0':
                output = "zero";
                break;
            case '1':
                output = "one";
                break;
            case '2':
                output = "two";
                break;
            case '3':
                output = "three";
                break;
            case '4':
                output = "four";
                break;
            case '5':
                output = "five";
                break;
            case '6':
                output = "six";
                break;
            case '7':
                output = "seven";
                break;
            case '8':
                output = "eight";
                break;
            case '9':
                output = "nine";
                break;

            default:
                output = null;
                break;
        }

        System.out.println(output);
    }
}

 

0
26/05/2019 16:36:34
NevenaHristova3 avatar NevenaHristova3 0 Точки

Благодаря много, стана  =)

0
NevenaHristova3 avatar NevenaHristova3 0 Точки

Възможно ли е задачата да се реши без масив, понеже още не сме го учили?

0
Hristo13 avatar Hristo13 226 Точки

Пробвай с char lastDigit = charAt(numbersAsString.length - 1);

Това което прави той е да преобразува стринга в масив от чарове и взима последния елемент от масива. Масива ще изглежда поредица от клетки които си имат позиция. Всяка клетка съдържа чар от стринга. Например при вход 1340: [0] = '1', [1] = '3', [2] = '4', [3] = '0'. Дължина на масива е от 0 до string.length - 1. Нас ни плашеха много с масиви, но не са кой знае какво. Смело взимай материала напред и не чакай да дойде време за лекции.

0