def func(num):
max = 0
for i in range(num):
if i > max:
max = i
return (max)
print(func(67124))
strawdog
23.5k4 золотых знака19 серебряных знаков34 бронзовых знака
задан 12 фев 2021 в 17:39
2
Можно использовать функцию max
для строкового представления числа.
Пример:
def f(num):
return int(max(str(num)))
Цифры будут сравниваться на основе ASCII кода их символьного представления. Это возможно, потому что их коды находятся последовательно от меньшего к большему (48-57).
ответ дан 12 фев 2021 в 17:46
nomnoms12nomnoms12
18.3k5 золотых знаков23 серебряных знака47 бронзовых знаков
Можно привести число к строке, чтобы на каждой итерации получить отдельную цифру.
Пример:
def f(num):
m = 0
for n in str(num):
if int(n) > m:
m = int(n)
return m
ответ дан 12 фев 2021 в 17:41
nomnoms12nomnoms12
18.3k5 золотых знаков23 серебряных знака47 бронзовых знаков
1
способ 1:
def f(num):
return max(map(int, str(num)))
способ 2:
def f(num):
res = 0
while num != 0:
res = max(res, num % 10)
num //= 10
return res
способ 3:
def f(num):
return int(sorted(str(num))[-1])
способ 3.5:
def f(num):
return int(list(set(str(num)))[-1])
ответ дан 12 фев 2021 в 17:46
ZhiharZhihar
36.9k4 золотых знака25 серебряных знаков67 бронзовых знаков
На чтение 3 мин Просмотров 1.4к. Опубликовано
Python предлагает множество встроенных функций и инструментов для обработки чисел и строк. В этой статье мы рассмотрим несколько способов нахождения максимальной цифры в числе в Python. Если вы хотите узнать, как можно легко и быстро находить максимальную цифру в числе, то эта статья для вас.
Содержание
- Использование цикла for и преобразование числа в строку для нахождения максимальной цифры
- Использование функции max() для нахождения максимальной цифры
- Нахождения максимальной цифры числа с помощью арифметические операций
Использование цикла for и преобразование числа в строку для нахождения максимальной цифры
Использование цикла for
является одним из способов нахождения максимальной цифры в числе. Для этого сначала число преобразуется в строку, а затем в цикле for
каждый символ строки проверяется на то, является ли он цифрой. Если это так, символ сравнивается с текущей максимальной цифрой, и если он больше, то он становится новой максимальной цифрой.
num = 456378
max_digit = 0
for digit in str(num):
if digit.isdigit() and int(digit) > max_digit:
max_digit = int(digit)
print("Максимальная цифра в числе", num, "равна", max_digit)
В этом примере мы определяем число num
равным 456378 и инициализируем переменную max_digit
нулем. Затем мы преобразуем num
в строку и проходим циклом for
по каждому символу строки. Если текущий символ является цифрой и больше текущей максимальной цифры, мы обновляем значение max_digit
. В конце мы выводим сообщение о максимальной цифре в числе.
Этот метод работает для любого положительного целого числа, но имейте в виду, что он не учитывает знаки плюса или минуса или десятичные точки, которые могут присутствовать в числе.
Если вы работаете с отрицательными числами, то сначала необходимо взять модуль числа с помощью функции abs()
:
num = -123456789
num = abs(num)
max_digit = 0
for digit in str(num):
if int(digit) > max_digit:
max_digit = int(digit)
print("Максимальная цифра в числе", num, "равна", max_digit)
Использование функции max() для нахождения максимальной цифры
В Python существует встроенная функция max()
, которая находит максимальное значение из последовательности. Мы можем использовать эту функцию для нахождения максимальной цифры в числе, преобразовав число в последовательность строк:
number = 12345
max_digit = max(str(number))
print("Максимальная цифра числа", number, ":", max_digit)
В этом примере мы сначала преобразовали число в строку с помощью str(number)
, а затем нашли максимальное значение в этой строке с помощью max()
. Затем мы вывели максимальную цифру с помощью функции print()
.
Этот подход короче и проще, чем использование цикла, который мы рассмотрели в предыдущем разделе.
Нахождения максимальной цифры числа с помощью арифметические операций
Для нахождения максимальной цифры числа с помощью арифметических операций можно использовать следующий алгоритм:
- Инициализировать переменную max_digit со значением 0.
- Используя цикл while, получить остаток от деления числа на 10.
- Сравнить полученный остаток с переменной max_digit.
- Если полученный остаток больше переменной max_digit, то присвоить значение полученного остатка переменной max_digit.
- Целочисленно разделить число на 10.
- Повторять шаги 2-5, пока число не станет равным 0.
В результате выполнения этого алгоритма переменная max_digit будет содержать максимальную цифру исходного числа.
Приведем пример реализации этого алгоритма на Python:
num = 123456
max_digit = 0
while num != 0:
digit = num % 10
if digit > max_digit:
max_digit = digit
num //= 10
print(max_digit)
В этом примере переменная num инициализируется значением 123456, а переменная max_digit — значением 0. Затем в цикле while получаются остатки от деления num на 10, сравниваются с переменной max_digit и при необходимости присваиваются переменной max_digit. Затем число num делится на 10 и процесс повторяется до тех пор, пока num не станет равным 0. В результате выполнения программы на экран будет выведено значение 6, которое является максимальной цифрой числа 123456.
So, I have to input a number and find the biggest digit in that number, so if the number is 2314 I want to get 4, my code so far:
a = input()
for x in a:
i = int(x)
asked Mar 21, 2016 at 22:08
1
If your input is a number, you will want to first convert your input to a string and then convert each character back into an integer and take the max. You can easily use a generator expression to convert all characters to integers using int
and then apply max
.
maximum = max(int(x) for x in str(a))
For the sake of an example:
maximum = max(int(x) for x in str(415023)) # 5
If on the other hand, your input is a string, then just skip the conversion to a string.
maximum = max(int(x) for x in a)
A More Robust Solution
All of these examples assume that you don’t have any decimal points or negative signs in your number. If you do then you can explicitly ignore those.
maximum = max(int(x) for x in str(a) if x not in '.-')
As an example:
a = -15.93
maximum = max(int(x) for x in str(a) if x not in '.-') # 9
answered Mar 21, 2016 at 22:11
SueverSuever
64.4k14 gold badges82 silver badges101 bronze badges
Convert to a string
, then get the max
a = 2314
max(str(a))
# output 4
answered Mar 21, 2016 at 22:10
idjawidjaw
25.2k7 gold badges63 silver badges83 bronze badges
1
Since this is a homework, here is another simple answer. Since you are a beginner, didn’t use max()
.
a = input("number: ")
print (sorted(list(a))[-1])
Converted the input to a list first, then sorted it. Last number is the max. That [-1]
is the last index of the list.
answered Mar 21, 2016 at 22:16
GLHFGLHF
3,77610 gold badges38 silver badges82 bronze badges
1
A reduce
in python2
might also work.
maximum = reduce(lambda acc, n: acc if acc > int(n) else int(n), "123131891", 0)
answered Mar 21, 2016 at 22:19
Alberto BonsantoAlberto Bonsanto
17.4k10 gold badges64 silver badges92 bronze badges
Перейти к содержанию
Найти наибольшую цифру натурального числа
Просмотров 33.9к. Обновлено 19 апреля 2022
С клавиатуры вводится натуральное число. Найти его наибольшую цифру.
Например, введено число 764580. Наибольшая цифра в нем 8.
Пусть переменная a — заданное число, переменная m — максимальная цифра.
Предположим, что последняя цифра числа и есть максимальная. Извлечем ее с помощью операции нахождения остатка при делении на 10.
Поскольку последнюю цифру мы уже учли, то избавимся от нее с помощью операции деления нацело на 10.
Далее в цикле будем извлекать с конца числа каждую его цифру и сравнивать со значением m. Если очередная цифра больше, то будем присваивать ее переменной m.
Также в цикле надо избавляться от последней, уже учтенной, цифры. Цикл завершает свою работу, когда переменная a станет равной нулю, т. е. он работает, пока переменная a больше нуля.
В конце программы выведем значение m на экран. Это и будет наибольшая цифра исходного числа.
Pascal
var
a: longint;
m: byte;
begin
readln(a);
m := a mod 10;
a := a div 10;
while a > 0 do begin
if a mod 10 > m then
m := a mod 10;
a := a div 10;
end;
writeln(m);
end.
Язык Си
#include < stdio.h>
main() {
int a, m;
scanf("%d",&a);
m = a%10;
a = a/10;
while (a > 0) {
if (a%10 > m)
m = a%10;
a = a/10;
}
printf("%dn", m);
}
Python
найти максимальную цифру числа python
a = int(input())
m = a%10
a = a//10
while a > 0:
if a%10 > m:
m = a%10
a = a//10
print(m)
КуМир
алг макс цифра числа
нач
цел a, m
ввод a
m := mod(a,10)
a := div(a,10)
нц пока a > 0
если mod(a,10) > m то
m := mod(a,10)
все
a := div(a,10)
кц
вывод m
кон
Basic-256
input a
m = a%10
a = a10
while a > 0
if a%10 > m then m = a%10
a = a10
endwhile
print m
Beronika 0 / 0 / 0 Регистрация: 04.12.2020 Сообщений: 2 |
||||
1 |
||||
Найти максимальную и минимальную цифру натурального числа.04.12.2020, 15:58. Показов 67472. Ответов 4 Метки нет (Все метки)
Я реально в ступоре уже два дня
Понимаю для чего мы используем % и //, но не понимаю как из всех полученных m, программа выбирает 6.Кто может объяснить?
0 |
1303 / 843 / 409 Регистрация: 12.03.2018 Сообщений: 2,305 |
|
04.12.2020, 16:04 |
2 |
Решение Добавьте
1 |
273 / 132 / 44 Регистрация: 05.02.2015 Сообщений: 876 |
|
04.12.2020, 16:05 |
3 |
смотрите внимательно на условие, а именно на знак больше. Если по русски, то если очередная цифра больше m, то m переприсваивается этой цифре.
1 |
Fudthhh Модератор 2872 / 1573 / 510 Регистрация: 21.02.2017 Сообщений: 4,197 Записей в блоге: 1 |
||||
04.12.2020, 16:16 |
4 |
|||
Beronika, правила: 5.4 Запрещено создавать темы с бессмысленными названиями вроде «Помогите!», «Вопрос» и т.п. Добавлено через 3 минуты
3 |
0 / 0 / 0 Регистрация: 04.12.2020 Сообщений: 2 |
|
04.12.2020, 16:22 [ТС] |
5 |
Благодарю за ответы
0 |