Обработка цифр числа. Сумма, произведение, количество цифр, удовлетворяющих условию.

Поділитися
Вставка
  • Опубліковано 26 лис 2024

КОМЕНТАРІ • 3

  • @figamidi5486
    @figamidi5486 2 роки тому +1

    Спасибо большое!!!! 👍👍👍👍👍👍👍

  • @vladimir.shubinkin
    @vladimir.shubinkin  3 роки тому +3

    ВАЖНОЕ замечание
    Целью данного урока было показать основы работы с цифрами числа и структурное единообразие таких программ, не отвлекаясь на достаточно значимые частные случаи:
    например, приведённая программа для подсчёта произведения будет выводить 1 для чисел, в которых вообще нет нечётных чисел. Полная программа должна выглядеть так:
    # Произведение нечётных цифр
    a = int(input())
    p = 1
    flag = False
    while a:
    d = a % 10
    if d % 2:
    s *= d
    flag = True
    a //= 10
    print(p if flag else 'В данном числе нет нечётных цифр')
    Здесь дополнительно используется переменная flag, которая позволяет отделить случай, когда в числе из нечётных цифр только единицы, от случая, когда вообще нет нечётных цифр.
    Аналогично можно поступить с суммой, если нам это важно:
    # Сумма чётных цифр числа
    a = int(input())
    s = 0
    flag = False
    while a:
    d = a % 10
    if d % 2 == 0:
    s += d
    flag = True
    a //= 10
    print(s if flag else 'В данном числе нет чётных цифр')
    А вот в программе подсчтёта количества цифр переменная-счётчик сама играет роль флага:
    # количество кратных трём цифр
    a = int(input())
    c = 0
    while a:
    d = a % 10
    if d % 3 == 0:
    c += 1
    a //= 10
    print(c if c else 'В данном числе нет цифр, кратных 3')
    Ещё примечание: в качестве параметра функции print() в этих программах передаётся значение, полученное с помощью так называемого тернарного условного оператора (я подробно рассказывал о нём в других видео).
    Строка print(s if flag else 'В данном числе нет чётных цифр')
    может быть заменена следующими четырьмя строками:
    if flag:
    print(s)
    else:
    print('В данном числе нет чётных цифр')

  • @vladimir.shubinkin
    @vladimir.shubinkin  3 роки тому +3

    Примечание. Чтобы программа работала не только для натуральных, но и для любых целых чисел, достаточно добавить функцию модуля в первую строку программы:
    a = abs(int(input()))