Как найти максимальную цифру числа python

def func(num):
    max = 0
    for i in range(num):
        if i > max:
            max = i
    return (max)


print(func(67124))

strawdog's user avatar

strawdog

23.3k4 золотых знака19 серебряных знаков33 бронзовых знака

задан 12 фев 2021 в 17:39

Дарья Лазарева's user avatar

2

Можно использовать функцию max для строкового представления числа.

Пример:

def f(num):
    return int(max(str(num)))

Цифры будут сравниваться на основе ASCII кода их символьного представления. Это возможно, потому что их коды находятся последовательно от меньшего к большему (48-57).

ответ дан 12 фев 2021 в 17:46

nomnoms12's user avatar

nomnoms12nomnoms12

18.3k5 золотых знаков22 серебряных знака47 бронзовых знаков

Можно привести число к строке, чтобы на каждой итерации получить отдельную цифру.

Пример:

def f(num):
    m = 0
    for n in str(num):
        if int(n) > m:
            m = int(n)
    return m

ответ дан 12 фев 2021 в 17:41

nomnoms12's user avatar

nomnoms12nomnoms12

18.3k5 золотых знаков22 серебряных знака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

Zhihar's user avatar

ZhiharZhihar

36.8k4 золотых знака25 серебряных знаков65 бронзовых знаков

На чтение 3 мин Просмотров 1.2к. Опубликовано

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

Содержание

  1. Использование цикла for и преобразование числа в строку для нахождения максимальной цифры
  2. Использование функции max() для нахождения максимальной цифры
  3. Нахождения максимальной цифры числа с помощью арифметические операций

Использование цикла 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().

Этот подход короче и проще, чем использование цикла, который мы рассмотрели в предыдущем разделе.

Нахождения максимальной цифры числа с помощью арифметические операций

Для нахождения максимальной цифры числа с помощью арифметических операций можно использовать следующий алгоритм:

  1. Инициализировать переменную max_digit со значением 0.
  2. Используя цикл while, получить остаток от деления числа на 10.
  3. Сравнить полученный остаток с переменной max_digit.
  4. Если полученный остаток больше переменной max_digit, то присвоить значение полученного остатка переменной max_digit.
  5. Целочисленно разделить число на 10.
  6. Повторять шаги 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.

С клавиатуры вводится натуральное число. Найти его наибольшую цифру. В ведённом ряде. Например, введено число 748927183 – наибольшее число число в ряде 9

Алгоритм решение задачи на python

Переменная a — заданное число, переменная m — максимальная цифра. Предположим, что последняя цифра числа является максимальной.

Извлекаем его с помощью операции нахождения остатка при делении на 10.

Так как последнюю цифру мы уже рассмотрели, избавимся от нее с помощью операции деления на 10.

Далее в цикле мы извлекаем каждую цифру из конца числа и сравниваем ее со значением m.Если следующая цифра больше, мы присваиваем ее переменной m.

Также в цикле нужно избавиться от уже учтенной последней цифры. Цикл завершается, когда переменная а становится равной нулю, т. е. он выполняется до тех пор, пока переменная а больше нуля.

В конце программы мы выведем на экран значение m. Это будет самая большая цифра исходного числа.

Решени задачи на языке 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)
  1. Нужна ли физика программисту ?
  2. Язык программирования и их значение
  3. Суть работы программиста
  4. Python задачи. Перевести байты в килобайты или наоборот

Комментировать пост…Комментировать…

О сообществе

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)

Alberto Bonsanto's user avatar

asked Mar 21, 2016 at 22:08

Aleks Florijan's user avatar

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

Suever's user avatar

SueverSuever

64.3k14 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

idjaw's user avatar

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

GLHF's user avatar

GLHFGLHF

3,74310 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 Bonsanto's user avatar

Alberto BonsantoAlberto Bonsanto

17.4k10 gold badges64 silver badges92 bronze badges

В данной теме приведены примеры решения наиболее распространенных задач, связанных с обработкой чисел. Изучение темы предполагает базовые знания по основам языка Python, а именно, использование средств ввода/вывода, циклов, списков, функций и тому подобное.


Содержание

  • 1. Выделить все цифры целого числа и представить их в виде списка
  • 2. Определить указанную цифру в целом числе
    • 2.1. Позиция указывается слева
    • 2.2. Позиция задается справа
  • 3. Вычислить сумму цифр целого числа
  • 4. Инвертировать целое число (1234 => 4321)
  • 5. Функция GetNumCount(). Определить количество цифр в числе
  • 6. Функция GetMaxNum(). Определить максимальную цифру в числе
  • 7. Функция GetMinNum(). Определить минимальную цифру в числе
  • Связанные  темы

Поиск на других ресурсах:

1. Выделить все цифры целого числа и представить их в виде списка
# Ввод числа
n = input("n = ")

# Выделить все цифры числа и представить их в виде списка

# Результирующий список
L = []

# Цикл формирования списка
while n>0:
    number = n%10   # взять последнюю цифру
    L = [number] + L # прибавить цифру в список
    n = n/10         # убрать последнюю цифру из числа

print("L = ", L)

Результат выполнения программы

n = 83470230
L = [8, 3, 4, 7, 0, 2, 3, 0]

 

2. Определить указанную цифру в целом числе
2.1. Позиция указывается слева

В примере определяется заданная цифра слева в заданном числе.

# Задача. Выделить цифру в числе по ее позиции

# 1. Ввод числа
n = input("n = ")

# 2. Ввод позиции (начинается с 0)
pos = input("pos = ")

# 3. Сформировать список цифр числа

L = [] # результирующий список

# Цикл формирования списка L
while n>0:
    L = [n%10] + L   # взять последнюю цифру и прибавить цифру к списку
    n = n/10         # убрать последнюю цифру из числа

# 4. Получить цифру
num = L[pos]

# 5. Вывести искомую цифру
print("num = ", num)
print("L = ", L)

Результат выполнения программы

n = 239487
pos = 4
num = 8)
L = [2, 3, 9, 4, 8, 7]

 

2.2. Позиция задается справа

Если задан номер позиции справа (начиная с 0), то в предыдущем примере 2.1 строку

...

# 4. Получить цифру
num = L[pos]

...

нужно заменить на строку

# 4. Получить цифру по смещению от конца
num = L[len(L) - pos - 1]

 

3. Вычислить сумму цифр целого числа
# Задача. Вычислить сумму цифр числа

# 1. Ввод числа
n = input("n = ")

# 2. Вычислить сумму
summ = 0 # Вычисляемая сумма

# Цикл выделения цифр из числа и вычисление суммы
while n>0:
    summ = summ + n%10 # взять последнюю цифру и прибавить цифру к сумме
    n = n/10        # убрать последнюю цифру из числа

# 3. Вывести сумму
print("sum = ", summ)

Результат выполнения программы

n = 12345
sum = 15

 

4. Инвертировать целое число (1234 => 4321)

Инвертировать число означает, что нужно получить новое число, которое читается как исходное число от конца до начала.

# Задача. Ивертировать число

import math

# 1. Ввод числа
n = input("n = ")

# 2. Создание нового инвертированного числа
# 2.1. Сначала нужно вычислить количество цифр (порядок) в числе
k = 0
n2 = n
while n2>0:
    k = k+1   # увеличить счетчик количества цифр на 1
    n2 = n2/10 # Убрать цифру

# 2.2. Цикл выделения цифр из числа n и создание инвертированного числа
while n>0:
    # взять последнюю цифру
    last = n%10

    # уменьшить порядок числа
    k = k-1

    # умножить полученную цифру на 10^k
    # и прибавить ее к новому числу
    n2 = n2 + int(last*math.pow(10, k)) # n2 - новое число

    # убрать последнюю цифру из числа
    n = n/10

# 3. Вывести новое число
print("n2 = ", n2)

Результат выполнения программы

n = 23456
n2 = 65432

 

5. Функция GetNumCount(). Определить количество цифр в числе

Реализовать функцию GetNumCount(), которая определяет количество цифр в целом числе. Функция получает параметром исходное число.

# Задача. Определить количество цифр в числе

import math

# Функция GetNumCount() - определить количество цифр в числе
def GetNumCount(n):
    k = 0 # k - результат

    while n>0:
        k = k+1
        n = n/10

    return k

# Демонстрация работы функции

# Ввод числа
n = input("n = ")

# Вызов функции
k = GetNumCount(n)
print("k = ", k)

Результат работы программы

n = 22768746
k = 8

 

6. Функция GetMaxNum(). Определить максимальную цифру в числе

В заданном целом числе n (n>0) нужно определить максимальную цифру. Например, если есть число 2883345, то максимальная цифра будет 8.

# Задача. Определить максимальную цифру в числе

import math

# Функция GetMaxNum() - определить максимальную цифру в числе
def GetMaxNum(n):
    # получить последнюю цифру числа
    Max = n%10

    while n>0:
        n = n/10 # уменьшить число
        if Max < n%10: # сравнить последнюю цифру с максимумом
            Max = n%10

    return Max

# Демонстрация работы функции

# Ввод числа
n = input("n = ")

# Вызов функции
num = GetMaxNum(n)
print("num = ", num)

Результат выполнения программы

n = 4556821
num = 8

 

7. Функция GetMinNum(). Определить минимальную цифру в числе

Задача решается так же как и в предыдущем примере.

# Задача. Определить минимальную цифру в числе

import math

# Функция GetMinNum() - определить минимальную цифру в числе
def GetMinNum(n):
    # получить последнюю цифру числа
    Min = n%10

    while n>0:
        n = n/10 # уменьшить число
        if Min > n%10: # сравнить последнюю цифру с минимумом
            Min = n%10

    return Min

# Демонстрация работы функции
# Ввод числа
n = input("n = ")

# Вызов функции
num = GetMinNum(n)
print("num = ", num)

Результат выполнения программы

n = 28302324
num = 0

 


Связанные темы

  • Решение задач на обработку целых чисел. Часть 2

 


Добавить комментарий