Форум » Динамическое программирование » Задание 23 26.04.21 c сайта олимпиад » Ответить

Задание 23 26.04.21 c сайта олимпиад

Тима: Исполнитель преобразует число на экране. У исполнителя есть две команды, которым присвоены номера: 1.Удвоить 2.Удвоить и прибавить Первая команда умножает число на экране на 2, вторая умножает его на 2, а затем прибавляет 1. Сколько различных результатов можно получить из исходного числа 1 после выполнения программы, содержащей ровно 10 команд ? [pre] sum = 1 for x in range (9): sum = sum * 2 print(sum) #Ответ: 512, тк первое мы уже посчитали и поэтому записали в sum 1 [/pre] Вопрос в том, правильно ли я решил данное задание ?

Ответов - 1

Anvikm: Добрый день! Думаю, что нет. [pre2] def f(x,l,t=[]): if l==10: return t+[x] else: return f(x*2,l+1,t)+f(x*2+1,l+1,t) a=f(1,0,[]) print(len(set(a))) [/pre2] #1024



полная версия страницы