Задача: Напишите метод, который на вход получает случайное число, а возвращает его наибольшую цифру.
* на вход - 208
* на выходе - 8
Есть рабочий код, но нужно его оптимизировать, например, чтобы в коде не было использовано в качестве переменных параметр самого метода.
Вот сам код:
public static String maxNumber(int random) {
if (random != 0) {
int max = 0;
while (random > 0) {
if (random % 10 > max) max = (int) (random % 10);
random /= 10;
} return String.valueOf(max);
} else return String.valueOf(0);
}
Anonymous #3131362
43 уровень
Как оптимизировать код
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
4 июля 2023, 10:31
Ты сам то понял что написал? Я вот например нет.
0
Anonymous #3131362
4 июля 2023, 10:45
В каком месте не понятно?
0
Денис Enterprise Java Developer
4 июля 2023, 10:47
нужно его оптимизировать, например, чтобы в коде не было использовано в качестве переменных параметр самого метода.
Что это значит?
Если методу не нужны аргументы, то убери их из сигнатуры, если ты что-то передаёшь в метод, предполагается, что этим нужно пользоваться внутри.
0
Anonymous #3131362
4 июля 2023, 11:08
Здесь речь идет об этой строке: random /= 10, где название переменной и параметр метода совпадают
0
Anonymous #3131362
4 июля 2023, 11:11
У тебя сигнатуре метода стоит public static int maxNumber(int random), а нужно по зданию public static String maxNumber(int random)
0
Денис Enterprise Java Developer
4 июля 2023, 11:27
так это не название ) это аргумент метода и есть. Ты с ним и работаешь.
В Java все передаётся по значению, значение примитива int это число. В данном случае это совершенно безопасно, если важна иммутабельность переданного параметра, вот был бы это объект, а не примитив, там появились бы нюансы.
Что до возвратного типа - это обычный здравый смысл. В задании написано наибольшую цифру, там не написано - ее строчное значение. В моём мире цифра это число :) Но если "по условию" требуется именно строка - то возвращай строку.
0
Anonymous #3131362
4 июля 2023, 11:34
Понял) Спасибо за развернутые ответы!
+1