Как решить сложный вопрос со списком в python?

Пусть функция testfunction(num) принимает передаваемый параметр num и выполняет следующие действия. Сначала возьмите все однозначные цифры входного числа (которое всегда будет целым положительным числом больше 1) и добавьте каждую из них в список. Затем возьмите входное число и умножьте его на любое из собственных целых чисел, затем возьмите новое число и добавьте каждую из цифр в исходный список. Продолжайте этот процесс до тех пор, пока в списке не появится смежная пара одинаковых цифр. Ваша программа должна вернуть наименьшее количество умножений, которое потребовалось, чтобы найти соседнюю пару одинаковых чисел.

Например: если num равно 134, то сначала добавьте каждое из целых чисел в список: [1, 3, 4]. Теперь, если мы возьмем 134 и умножим его на 3 (которое является одним из собственных целых чисел), мы получим 402. Теперь, если мы добавим каждое из этих новых целых чисел в список, мы получим: [1, 3, 4, 4, 0, 2]. Мы нашли соседнюю пару дублирующихся чисел, а именно 4 и 4. Поэтому для этого ввода ваша программа должна вернуть 1, так как для нахождения этой пары потребовалось всего 1 умножение.

Другой пример: если num равно 46, то мы добавляем в список эти целые числа: [4, 6]. Если мы умножим 46 на 6, то получим 276, и, добавив эти целые числа в список, получим: [4, 6, 2, 7, 6]. Затем, если мы возьмем это новое число 276 и умножим его на 2, то получим 552. Добавив эти целые числа к списку, мы получим: [4, 6, 2, 7, 6, 5, 5, 2]. Таким образом, ваша программа должна вернуть 2, потому что для нахождения пары соседних дублирующих чисел (в данном случае 5 и 5) потребовалось 2 умножения.

Примеры Вход: 8 Выход: 3 Вход: 198 Выход: 2

Вернуться на верх