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 # Забрати останню цифру

# Цикл виділення цифр з числа 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

 


Зв’язані теми