Форум » Выполнение и анализ алгоритмов для исполнителей » В13 №22 » Ответить

В13 №22

KristinaTsK: 22)У исполнителя Калькулятор две команды, которым присвоены номера: 1. прибавь 1 2. увеличь каждый разряд числа на 1 Например, число 23 с помощью команды 2 превратится в 34, а 29 в 39 (так как младший разряд нельзя увеличить). Если перед выполнением команды 2 какая-либо цифра равна 9, она не изменяется. Сколько есть программ, которые число 24 преобразуют в число 46? У меня не сходится с ответом(12,а в ответе 14) К24=К23+К13=1 и так до К35,затем с К36=2,К37=3,К38=4,К39=5...К45=11, К46=К45+К35=12. укажите мою ошибку,пожалуйста

Ответов - 4

oval: давайте полную таблицу

oval: вообще то, 35 можно получить из 34 и 24, т.е для него 2

KristinaTsK: oval , да, вы правы.я исправила ошибку,теперь все сошлось.спасибо огромное)))


ripidipi: def a(n): m = 1 i = 0 while m < n: if str(n)[i] != 9: n += m m*=10 return n def F(n, s): if n == s: return 1 if n > s: return 0 t = a(n) return F(n+1, s) + F(t, s) print(F(24, 46))



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