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




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

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


Содержание


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

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

 


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