Циклы «for» и «while». Обработка цифр числа

 Использование цикла «while» для обработки цифр числа

 Что покажет приведенный ниже фрагмент кода?:

num = 12345
product = 1
while num != 0: last_digit = num % 10 product = product * last_digit num = num // 10
print(product)

 Ответ: 120

 Что покажет приведенный ниже фрагмент кода?:

num = 123456789
total = 0
while num != 0:
    last_digit = num % 10
    if last_digit > 4:
        total += 1

    num = num // 10

print(total)

 Ответ: 5

 Дано натуральное число. Напишите программу, которая выводит его цифры в столбик в обратном порядке.

a = int(input())

while a != 0:
    last = a % 10
    print(last)
    a = a // 10

 Дано натуральное число. Напишите программу, которая меняет порядок цифр числа на обратный.

a = int(input())

while a != 0:
    n = a % 10
    print(n, end='')
    a = a // 10

 Дано натуральное число n (n ≥ 10). Напишите программу, которая определяет его максимальную и минимальную цифры.

a = int(input())

t = 0

ma = 0
mi = 9

while a != 0:
    m = a % 10
    t = m
    if t > ma:
        ma = t
    if t < mi:
        mi = t
    a = a // 10

print('Максимальная цифра равна', ma)
print('Минимальная цифра равна', mi)

Дано натуральное число. Напишите программу, которая вычисляет:

  • сумму его цифр;
  • количество цифр в нем;
  • произведение его цифр;
  • среднее арифметическое его цифр;
  • его первую цифру;
  • сумму его первой и последней цифры.
a = int(input())

s = 0 # сумма цифр
l = 0 # кол.
p = 1 # произ.
f = 0 # ариф.
c = 0 # пер. ц.
d = a % 10 # 1+с

while a != 0:
    n = a % 10
    s += n
    l += 1
    p *= n
    f = s / l
    c = n
    a = a // 10

print(s)
print(l)
print(p)
print(f)
print(c)
print(d + c)

 Дано натуральное число n (n > 9). Напишите программу, которая определяет его вторую (с начала) цифру.

a = int(input())

while a > 9:
    n = a % 10
    a = a // 10
print(n)  

 Дано натуральное число. Напишите программу, которая определяет, состоит ли указанное число из одинаковых цифр. Программа должна вывести «YES» если число состоит из одинаковых цифр и «NO» в противном случае..

a = int(input())

f = True
ld = a % 10

while a != 0:
    n = a % 10
    if ld != n:
        f = False   
    a = a // 10

if f == True:
    print('YES')
else:
    print('NO')

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

a = int(input())

l = len(str(a))
nn = 0
c = 0

while a != 0:
    n = a % 10
    if nn <= n:
        nn = n
        c += 1
    a = a // 10

if l == c:
    print('YES')
else:
    print('NO')