Количество различных чисел из 'n' чисел; числа только 5 и 9, но максимум 2 цифры подряд напнример(n=3; можно сделать такие числа :559; 599; 995; 959; 955; 595. Но нельзя 555 или 999, но можно 559955 или 995599 и т.д. например: вводится n(3) вывести(6)
Для данной задачи можно использовать динамическое программирование для подсчета количества различных чисел удовлетворяющих условиям.
В данном случае, мы можем рассмотреть два массива: 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)
Для данной задачи можно использовать динамическое программирование для подсчета количества различных чисел удовлетворяющих условиям.
В данном случае, мы можем рассмотреть два массива: 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