Количество различных чисел из 'n' чисел; числа только 5 и 9, но максимум 2 цифры подряд напнример(n=3; можно сделать такие числа :559; 599; 995; 959; 955; 595. Но нельзя 555 или 999, но можно 559955 или 995599 и т.д. например: вводится n(3) вывести(6)

29 Мар 2021 в 19:42
145 +1
0
Ответы
1

Для данной задачи можно использовать динамическое программирование для подсчета количества различных чисел удовлетворяющих условиям.

В данном случае, мы можем рассмотреть два массива: dp1 и dp2, где dp1[i] представляет количество чисел длиной i с завершающей цифрой 5, и dp2[i] представляет количество чисел длиной i с завершающей цифрой 9.

Таким образом, мы можем выразить dp1[i] и dp2[i] через предыдущие значения массивов dp1 и dp2, учитывая условия на количество подряд идущих цифр.

Давайте напишем код для решения данной задачи на Python:

def countNumbers(n):
if n == 1:
return 2
dp1 = [0] * (n + 1)
dp2 = [0] * (n + 1)
dp1[1] = 1
dp2[1] = 1
for i in range(2, n + 1):
dp1[i] = dp1[i - 1] + dp2[i - 1]
dp2[i] = dp1[i - 1]
return dp1[n] + dp2[n]
n = int(input("Введите n: "))
result = countNumbers(n)
print("Количество различных чисел: ", result)

Пример работы программы:

Введите n: 3
Количество различных чисел: 6
17 Апр 2024 в 19:59
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир