Условие, определяющее, будет ли выполняться тело цикла. Это условие записывается после слова while и может быть произвольным арифметическим выражением, в котором должен быть хотя бы один из операторов ==, !=, <, >, <=, >= и могут использоваться логические операторы and, or, not. После условия ставится двоеточие.
Тело цикла, состоящее из одной или нескольких инструкций, записанных с отступом одинаковой величины.
Инструкции, изменяющие значения переменных, входящих в проверяемое условие. В рассмотренном примере это инструкция i=i+1. Если бы этой инструкции не было, то значение переменной i не менялось бы и проверяемое условие всегда было бы истинным, что привело бы к бесконечному циклу. Для прерывания работы программы, попавшей в бесконечный цикл, используется комбинация клавиш Ctrl+C.
Посчитаем, сколько команд переводят 22 в n, обозначим это количество как a(n). Положим a(22) = 1 (существует одна - пустая - программа, переводящая 22 в 22) и a(n) = 0 для всех n больше 22.
Любое число n могло получиться следующими
из n + 1 путем вычитания 1из n + 3 путем вычитания 3из 3n путем деления на 3из 3n + 1 путем деления на 3из 3n + 2 путем деления на 3
Условие, определяющее, будет ли выполняться тело цикла. Это условие записывается после слова while и может быть произвольным арифметическим выражением, в котором должен быть хотя бы один из операторов ==, !=, <, >, <=, >= и могут использоваться логические операторы and, or, not. После условия ставится двоеточие.
Тело цикла, состоящее из одной или нескольких инструкций, записанных с отступом одинаковой величины.
Инструкции, изменяющие значения переменных, входящих в проверяемое условие. В рассмотренном примере это инструкция i=i+1. Если бы этой инструкции не было, то значение переменной i не менялось бы и проверяемое условие всегда было бы истинным, что привело бы к бесконечному циклу. Для прерывания работы программы, попавшей в бесконечный цикл, используется комбинация клавиш Ctrl+C.
2196
Объяснение:
Посчитаем, сколько команд переводят 22 в n, обозначим это количество как a(n). Положим a(22) = 1 (существует одна - пустая - программа, переводящая 22 в 22) и a(n) = 0 для всех n больше 22.
Любое число n могло получиться следующими
из n + 1 путем вычитания 1из n + 3 путем вычитания 3из 3n путем деления на 3из 3n + 1 путем деления на 3из 3n + 2 путем деления на 3Тогда a(n) = a(n + 1) + a(n + 3) + a(3n) + a(3n + 1) + a(3n + 2).
Начинаем последовательно вычислять значения:
a(21) = a(22) + 0 + 0 + 0 + 0 = 1
a(20) = a(21) + 0 + 0 + 0 + 0 = 1
a(19) = a(20) + a(22) + 0 + 0 + 0 = 2
...
a(7) = a(8) + a(10) + a(21) + a(22) + 0
a(6) = a(7) + a(9) + a(18) + a(19) + a(20)
...
Получившиеся значения приведены в таблице: