Python. Решение задач на обработку целых чисел
В данной теме приведены примеры решения наиболее распространенных задач, связанных с обработкой чисел. Изучение темы предполагает базовые знания по основам языка Python, а именно, использование средств ввода/вывода, циклов, списков, функций и тому подобное.
Поиск на других ресурсах:
1. Выделить все цифры целого числа и представить их в виде списка
# Ввод числа n = input("n color: #ff0000;"># Выделить все цифры числа и представить их в виде списка # Результирующий список L = [] # Цикл формирования списка while n>0: number = n%10 # взять последнюю цифру L = [number] + L # прибавить цифру в список n = n/10 # убрать последнюю цифру из числа print("L color: #333300;">⇑2. Определить указанную цифру в целом числе
2.1. Позиция указывается слева
В примере определяется заданная цифра слева в заданном числе.
# Задача. Выделить цифру в числе по ее позиции # 1. Ввод числа n = input("n color: #ff0000;"># 2. Ввод позиции (начинается с 0) pos = input("pos color: #ff0000;"># 3. Сформировать список цифр числа L = [] # результирующий список # Цикл формирования списка L while n>0: L = [n%10] + L # взять последнюю цифру и прибавить цифру к списку n = n/10 # убрать последнюю цифру из числа # 4. Получить цифру num = L[pos] # 5. Вывести искомую цифру print("num color: #800080;">print("L color: #333300;">⇑2.2. Позиция задается справа
Если задан номер позиции справа (начиная с 0), то в предыдущем примере 2.1 строку
. # 4. Получить цифру num = L[pos] .нужно заменить на строку
# 4. Получить цифру по смещению от конца num = L[len(L) - pos - 1]3. Вычислить сумму цифр целого числа
# Задача. Вычислить сумму цифр числа # 1. Ввод числа n = input ( "n color: #ff0000;"># 2. Вычислить сумму summ = 0 # Вычисляемая сумма # Цикл выделения цифр из числа и вычисление суммы while n>0: summ = summ + n%10 # взять последнюю цифру и прибавить цифру к сумме n = n/10 # убрать последнюю цифру из числа # 3. Вывести сумму print ( "sum color: #333300;">⇑
4. Инвертировать целое число (1234 => 4321)
Инвертировать число означает, что нужно получить новое число, которое читается как исходное число от конца до начала.
# Задача. Ивертировать число import math # 1. Ввод числа n = input ( "n color: #ff0000;"># 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 color: #333300;">⇑
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 color: #ff0000;"># Вызов функции k = GetNumCount(n) print ( "k color: #333300;">⇑
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 color: #ff0000;"># Вызов функции num = GetMaxNum(n) print ( "num color: #333300;">⇑
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 color: #ff0000;"># Вызов функции num = GetMinNum(n) print ( "num color: #333300;">⇑
Связанные темы
Как найти наибольшую цифру в числе в python
Забыли пароль? Введите ваш е-мейл адрес. Вы получите письмо на почту со ссылкой для восстановления пароля.
Авторизация
Быстрая регистрацияПосле регистрации вы можете задавать вопросы и отвечать на них, зарабатывая деньги. Ознакомьтесь с правилами, будем рады видеть вас в числе наших экспертов!
Создать аккаунт
- Работа на Vamber
- Интересные факты
- 10% от рефералов
- ТОП авторов
- Работа без опыта
Авторизация
Быстрая регистрация
После регистрации вы можете задавать вопросы и отвечать на них, зарабатывая деньги. Ознакомьтесь с правилами, будем рады видеть вас в числе наших экспертов!
Необходимо вывести наименьшую и наибольшую цифры данного числа через пробел
Выходные данные
Необходимо вывести наименьшую и наибольшую цифры данного числа через пробел.
Примеры
входные данные
37
выходные данные
3 7
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Функция, определяющая наименьшую и наибольшую цифры данного числа
Дано натуральное число N. Напишите функцию function MinDigit (n:longint):integer и function.
Найти наибольшую и наименьшую цифры в записи данного натурального числа n
Найти наибольшую и наименьшую цифры в записи данного натурального числа n

Напишите программу, определяющую наименьшую и наибольшую цифры данного числа
Уважаемые программисты, помогите пожалуйста решить 3 задачи: 2.Дано натуральное число n.
Найти наибольшую и наименьшую цифры в записи данного натурального числа
Найти наибольшую и наименьшую цифры в записи данного натурального числа.
Просто Лис
![]()
5321 / 3335 / 1021
Регистрация: 17.05.2012
Сообщений: 9,768
Записей в блоге: 9
В чём проблема? Не можете разбить число на цифры?
635 / 475 / 179
Регистрация: 28.05.2012
Сообщений: 1,412

Сообщение было отмечено _Bonaparte_ как решение
Решение
n = sorted(map(int, list(input()))) print(n[0], n[-1])
Регистрация: 15.03.2019
Сообщений: 6

Сообщение было отмечено _Bonaparte_ как решение
Решение
1 2 3
n = int(input()) n = list(str(n)) print(min(n), max(n))
1040 / 575 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
x = int(input()); print(min(list(str(x))), max(list(str(x))))
Просто Лис
![]()
5321 / 3335 / 1021
Регистрация: 17.05.2012
Сообщений: 9,768
Записей в блоге: 9
Сообщение от Mirage77 
n = int(input()) n = list(str(n))
Зачем конвертировать строку в число и потом обратно в строку?
m0nte-cr1st0, к тебе тот же вопрос +второй: зачем дважды создавать список?
Регистрация: 15.03.2019
Сообщений: 6
Сообщение от Рыжий Лис 
Зачем конвертировать строку в число и потом обратно в строку?
Так вроде в условии сказано "дано натуральное число n".
Я так понял это, что надо именно вводить int.
1040 / 575 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
Сообщение от Рыжий Лис 
Зачем конвертировать строку в число и потом обратно в строку?
а если число в результате каких-то вычислений приходит?
Сообщение от Рыжий Лис 
зачем дважды создавать список?
x = 37; lst = list(str(x)); print(min(lst), max(lst))
Просто Лис
![]()
5321 / 3335 / 1021
Регистрация: 17.05.2012
Сообщений: 9,768
Записей в блоге: 9
И? В любом случае на вход подаётся строка.
Добавлено через 28 секунд
Это был ответ к Mirage77
1040 / 575 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
Сообщение от Рыжий Лис 
В любом случае на вход подаётся строка.
тут вовсе никаких списков не надо, кстати.
number = input(); print(min(number), max(number))
Регистрация: 15.03.2019
Сообщений: 6
Сообщение от Рыжий Лис 
И? В любом случае на вход подаётся строка.
ну как в любом? если указано "натуральное", как бы тут int подразумевается? ясное дело, что проще указать input() и не париться, будет сразу строка.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Найти наибольшую и наименьшую цифры в записи данного натурального числа
нужно написать текст программы, язык VBA 1.В старояпонском календаре был принят 12-летний цикл.
Найти наибольшую и наименьшую цифры в записи данного натурального числа
Найти наибольшую и наименьшую цифры в записи данного натурального числа и номера их позиций в числе.

Найти наибольшую и наименьшую цифры в записи данного натурального числа
Найти наибольшую и наименьшую цифры в записи данного натурального числа. В С++

Найти наибольшую и наименьшую цифры в записи данного натурального числа.
Найти наибольшую и наименьшую цифры в записи данного натурального числа.

Найти наибольшую и наименьшую цифры в записи данного натурального числа
Составить программу для решения следующей задачи :Найти наибольшую и наименьшую цифры в записи.

Найти наибольшую и наименьшую цифры в записи данного натурального числа
Помогите просто не понимаю как это сделать! Так же помогите решить: "Среди всех n-значных чисел.
Найти число с максимальной суммой цифр
Что я делаю: сначала нахожу сумму цифр числа, чтобы найти максимальное. По индексу максимального числа из полученных сумм хочу найти максимальное из array . До append все хорошо, но с индексом и нахождением числа проблема.
Отслеживать
12.5k 7 7 золотых знаков 18 18 серебряных знаков 48 48 бронзовых знаков
задан 22 апр 2021 в 10:25
Дарья Лазарева Дарья Лазарева
59 1 1 серебряный знак 8 8 бронзовых знаков
array = [120,125,365,450]; print(max(array)) (max() - встроенная функция пайтона)
22 апр 2021 в 10:28
Если бы так просто было))) Прочитайте мой комментарий.
22 апр 2021 в 10:32
или нужно вернуть не 450 (максимальное), а 365, у которого максимальная сумма цифр? ps по описанию как раз и не скажешь, что вы на самом деле хотите получить
22 апр 2021 в 10:32
Да 365 нужно вернуть
22 апр 2021 в 10:33
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Находим максимальный элемент массива array по ключу:
- Из числа 365 (к примеру) делаем список ['3', '6', '5'] .
- Находим сумму элементов списка sum(. ) , при этом переводя их в map(int, . ) .
array = [120, 125, 365, 450] print(max(array, key=lambda x: sum(map(int, str(x)))))
Отслеживать
ответ дан 22 апр 2021 в 10:36
13.1k 2 2 золотых знака 21 21 серебряный знак 37 37 бронзовых знаков
TypeError: 'int' object is not callable
22 апр 2021 в 10:38
@Jack_oS, еще раз проверьте 🙂
22 апр 2021 в 10:38
да, все ок, это что-то с pycharm было и его django console.
22 апр 2021 в 16:20
В дополнение к ответу от entithat.
Больше текста, но без зубодробительности однострочников пайтона 😉
# функция для определения суммы чисел def sum_nums(num): result = 0 # текущая сумма - 0 for ch in str(num): # для каждого элемента в числе, переведенном в строку: result += int(ch) # добавить инт элемента к результату return result # основная ф-ция def max_sum_num(arr): max_num = arr[0] # первый в списке - текущий максимальный max_sum = sum_nums(arr[0]) # то же для суммы for el in arr[1:]: # для каждого элемента, начиная со второго: el_sum = sum_nums(el) # вычислить сумму if el_sum > max_sum: # если больше текущей: max_num = el # обновить максимальное число max_sum = el_sum # обновить максимальную сумму return max_num
array = [120,125,365,450] max_sum_num(array)
