Исполнитель преобразует число на экране. У исполнителя есть три команды, которым присвоены номера:
1. Прибавить 1.
2. Прибавить 2.
3. Умножить на 3.
Первая команда увеличивает число
Построим две таблицы —
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 1 | 1 | 2 | 3 | 6 | 9 | 15 | 25 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 1 | 1 | 2 | 0 | 2 | 2 | 4 | 6 | 10 | 16 | 26 |
Для получения ответа перемножим значения для 9 и 19: 25 · 26 = 650.
Приведём программное решение.
| Паскаль |
|---|
function f(a, b: integer): integer; begin if a = b then f := 1 else if (a > b) or (a = 12) then f := 0 else f := f(a+1, b) + f(a+2, b) + f(a*3, b); end; begin writeln(f(2, 9)*f(9, 19)) end. |
| Python |
def f(a, b): if a == b: return 1 if a > b or a == 12: return 0 return f(a+1, b) + f(a+2, b) + f(a*3, b) print(f(2, 9) * f(9, 19)) |
| С++ |
#include <iostream> using namespace std; int f(int a, int b){ if(a == b) return 1; if(a > b or a == 12) return 0; return f(a+1, b) + f(a+2, b) + f(a*3, b); } int main(){ std::cout << (f(2, 9) * f(9, 19)); } |
Ответ: 650.

