Задачи с кодом

Сколько раз придется умножить?

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

Примеры

multiplication(39) ➞ 3
# Потому что 3 * 9 = 27, 2 * 7 = 14, 1 * 4 = 4, а 4 - однозначное число.

multiplication(999) ➞ 4
# 9 * 9 * 9 = 729, 7 * 2 * 9 = 126, 1 * 2 * 6 = 12, 1 * 2 = 2.

multiplication(4) ➞ 0
# Потому что 4 - однозначное число.

Варианты решения

def multiplication(num):
    return 0 if num < 10 else 1 + multiplication(eval("*".join(str(num))))
from operator import *
from functools import *
def multiplication(num):
    if num <= 9: return 0
    return 1 + multiplication(reduce(mul, map(int, str(num))))
import numpy as np
def multiplication(num):
    if len(str(num)) == 1:
        return 0
    return 1 + multiplication(np.prod(np.array([int(x) for x in str(num)])))

Марина

Recent Posts

Библиотека Pydantic: валидация данных на Python

Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…

5 дней ago

7 наилучших библиотек визуализации Python на 2024 год

Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…

1 неделя ago

Как преобразовать строку в байты в Python

В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…

3 недели ago

Что такое Werkzeug?

В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…

3 недели ago

Как прибавить дни, месяцы и годы к дате в Python

При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…

4 недели ago

Социальная аутентификация в приложении на Flask

В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…

1 месяц ago