Форум » Динамическое программирование » 23 задание № 136 » Ответить

23 задание № 136

cool.chastikov: Здравствуйте, решение, которое представлено в архиве (рекурсией) довольно понятно, но я хочу добить задачу своим методом, а именно создать массив чисел от нуля до 31 (включительно) и проходясь по всему массиву со второго элемента добавлять к нему сумму ходов из предыдущей ячейки и от ячейки, что на разряд меньше. Вот моя программа, выдаёт совсем не ответ 82, подскажите пожалуйста в чём может быть ошибка. [pre2] def count(n): counter = 0 while (n > 0): n //= 2 counter += 1 return counter a = [ 0 ] * 32 a[ 1 ] = 1 for i in range(2, 32): a[ i ] += a[ i - 1 ] a[ i ] += a[ i - 2**(count(i) - 1) ] print(a[ 31 ]) [/pre2] Заранее спасибо за ответ)

Ответов - 0



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