Рекурсивно описать функцию maxdig(N), которая находит наибольшую цифру в десятичной записи неотъемлемого целого числа N в С++, с объяснением и примерами.
Функция maxdig(N) представляет собой рекурсивную функцию, которая находит наибольшую цифру в десятичной записи неотъемлемого целого числа N. Функция имеет следующий вид:
int maxdig(int n)
{
if (n < 10)
return n;
int max = maxdig(n/10);
return (n % 10 > max) ? n % 10 : max;
}
Объяснение:
Основная идея заключается в том, что мы делим исходное число на 10 до тех пор, пока оно не достигнет значения меньше 10. Затем мы сравниваем последнюю цифру числа с результатом, полученным из рекурсивного вызова, и возвращаем наибольшее из них.
Например, для числа 753:
maxdig(753) = maxdig(75)
= maxdig(7)
= 7
Для числа 9945:
maxdig(9945) = maxdig(994)
= maxdig(99)
= maxdig(9)
= 9
0 votes Thanks 0
melfoy
спасибо, можете обьяснить что это значит ? n % 10 : max
asilvejstruk
; Это означает, что если последняя цифра числа (n % 10) больше, чем max (результат рекурсивного вызова), то мы возвращаем n % 10, иначе - max.
Answers & Comments
Ответ:
Рекурсивно описать функцию maxdig(N), которая находит наибольшую цифру в десятичной записи неотъемлемого целого числа N в С++, с объяснением и примерами.
Функция maxdig(N) представляет собой рекурсивную функцию, которая находит наибольшую цифру в десятичной записи неотъемлемого целого числа N. Функция имеет следующий вид:
int maxdig(int n)
{
if (n < 10)
return n;
int max = maxdig(n/10);
return (n % 10 > max) ? n % 10 : max;
}
Объяснение:
Основная идея заключается в том, что мы делим исходное число на 10 до тех пор, пока оно не достигнет значения меньше 10. Затем мы сравниваем последнюю цифру числа с результатом, полученным из рекурсивного вызова, и возвращаем наибольшее из них.
Например, для числа 753:
maxdig(753) = maxdig(75)
= maxdig(7)
= 7
Для числа 9945:
maxdig(9945) = maxdig(994)
= maxdig(99)
= maxdig(9)
= 9
Это означает, что если последняя цифра числа (n % 10) больше, чем max (результат рекурсивного вызова), то мы возвращаем n % 10, иначе - max.