Я очень новый студент. У меня есть упражнение по кодированию, которое я пытался выполнить, и я подумал, что мое решение было функциональным, но я получаю неожиданные результаты. Мне интересно, есть ли проблема с моей логи c?
Назначение: Напишите метод с именем sumFirstAndLastDi git с одним параметром типа int с именем number.
Метод должен найти первый и последний di git номера параметра, переданного методу, используя al oop и возвращая сумму первого и последнего di git этого числа.
Если число отрицательное, тогда метод необходимо вернуть -1, чтобы указать недопустимое значение. Пример ввода / вывода
sumFirstAndLastDi git (252); → должно вернуть 4, первое di git равно 2, а последнее равно 2, что дает нам 2 + 2, а сумма равна 4.
sumFirstAndLastDi git (257); → должно вернуть 9, первый di git равен 2, а последний равен 7, что дает нам 2 + 7, а сумма равна 9.
sumFirstAndLastDi git (0); → должен вернуть 0, первый di git и последний di git равны 0, поскольку у нас есть только 1 di git, что дает нам 0 + 0, а сумма равна 0.
sumFirstAndLastDi git (5); → должно вернуть 10, первое di git и последнее di git равно 5, поскольку у нас есть только 1 di git, что дает нам 5 + 5, а сумма равна 10.
sumFirstAndLastDi git (- 10); → должен возвращать -1, поскольку параметр отрицателен и должен быть положительным.
ПРИМЕЧАНИЕ. Метод sumFirstAndLastDi git должен быть определен как public stati c, как у нас до сих пор делал в курсе.
ПРИМЕЧАНИЕ: не добавляйте метод main к коду решения.
Вот что я придумал (я включил только метод само по себе):
public static int sumFirstAndLastDigit (int number) {
if (number < 0) {
return -1;
} else if (number <= 9) {
number += number;
return number;
}
int num = number;
int sumFirstAndLast = 0;
while (num > 0) {
int useDigit = (num % 10);
if ((num == number) || ((double)num < 1)) {
sumFirstAndLast += useDigit;
}
num = num / 10;
} return sumFirstAndLast;
}
Я думаю проблема может быть в том, что в моем выражении if l oop, но я не уверен. Я хочу, чтобы он проверял, равно ли num оригинальному числу, которое передается методу, и проверял, после того, как num был пройден, пока l oop несколько раз, проверил, меньше ли оно 1 (вот почему я произвел это как двойное число)
Когда я пишу, как должен работать каждый l oop, кажется, что он будет работать, но я получаю неправильный вывод.
Любая помощь, критика, эмпирические правила и др. c. с благодарностью. Заранее спасибо.