Python. Решение задач на обработку целых чисел
В данной теме приведены примеры решения наиболее распространенных задач, связанных с обработкой чисел. Изучение темы предполагает базовые знания по основам языка Python, а именно, использование средств ввода/вывода, циклов, списков, функций и тому подобное.
Содержание
- 1. Выделить все цифры целого числа и представить их в виде списка
- 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
⇑
Связанные темы
⇑