Подтвердить что ты не робот

Получает последнюю цифру числа

Мне нужно определить последнюю цифру числа, присваивающую это значение. После этого верните последнюю цифру.

Мой фрагмент кода работает неправильно...

Код:

public int lastDigit(int number)
{
    //your code goes here. 
    String temp = Integer.toString(number);
    int[] guess = new int[temp.length()];
    int last = guess[temp.length() - 1];

    return last;
}

Вопрос:

  • Как решить эту проблему?
4b9b3361

Ответ 1

Просто верните (number % 10); т.е. взять модуль. Это будет намного быстрее, чем синтаксический анализ строки и из строки.

Если number может быть отрицательным, используйте (Math.abs(number) % 10);

Ответ 2

Ниже приведено более простое решение о том, как получить последнюю цифру от int:

public int lastDigit(int number) { return number % 10; }

Ответ 3

Используйте

int lastDigit = number % 10. 

Читайте об операторе Modulo: http://en.wikipedia.org/wiki/Modulo_operation

Или, если вы хотите пойти с вашим решением String

String charAtLastPosition = temp.charAt(temp.length()-1);

Ответ 4

Не нужно использовать strings. Это связано с нагрузкой.

int i = 124;
int last= i%10;
System.out.println(last);   //prints 4

Ответ 5

вот ваш метод

    public int lastDigit(int number)
{
    //your code goes here. 
    int last =number%10;
    return last;
}

Ответ 6

Без использования '%'.

public int lastDigit(int no){
    int n1 = no / 10;
    n1 = no - n1 * 10;
    return n1;
}

Ответ 7

Вы только что создали пустой массив целых чисел. Массив guess не содержит ничего, что мне известно. В остальном вам нужно поработать, чтобы поправиться.

Ответ 8

У вашего массива нет инициализации. Таким образом, он даст значение по умолчанию Zero. Вы также можете попробовать это

String temp = Integer.toString(urNumber);
System.out.println(temp.charAt(temp.length()-1));

Ответ 9

public static void main (String [] args) {

    System.out.println(lastDigit(2347));
}

public static int lastDigit(int number)
{
    //your code goes here. 
    int last = number % 10;

    return last;
}

0/р:

7

Ответ 10

Используйте StringUtils, если вам нужен результат строки:

String last = StringUtils.right(number.toString(), 1);

Ответ 11

Еще один интересный способ сделать это, который также позволит больше, чем просто последний номер, будет:

int number = 124454;
int overflow = (int)Math.floor(number/(1*10^n))*10^n;

int firstDigits = number - overflow;
//Where n is the number of numbers you wish to conserve</code>

В приведенном выше примере, если n равно 1, программа вернется: 4

Если n равно 3, программа вернет 454

Ответ 12

Хотя лучший способ сделать это - использовать%, если вы настаиваете на использовании строк, это будет работать

public int lastDigit(int number)
{
return Integer.parseInt(String.valueOf(Integer.toString(number).charAt(Integer.toString(number).length() - 1)));
}

но я просто написал это для полноты. Не используйте этот код. это просто ужасно.