У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 2
2. умножь на 2
Сколько есть программ, которые число 1 преобразуют в число 24?

Вопрос школьника по предмету Информатика

У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 2
2. умножь на 2
Сколько есть программ, которые число 1 преобразуют в число 24?

Ответ учителя по предмету Информатика

Ответ: 32

(1+2+2+2+2+2)*2+2

(1+2+2+2+2)*2+2+2+2

(1+2+2+2)*2+2+2+2+2+2

(1+2+2)*2+2+2+2+2+2+2+2

((1+2+2)*2+2)*2

((1+2+2)*2)*2+2+2

(1+2)*2+2+2+2+2+2+2+2+2+2

((1+2)*2+2+2+2)*2

((1+2)*2+2+2)*2+2+2

((1+2)*2+2)*2+2+2+2+2

((1+2)*2)*2+2+2+2+2+2+2

(((1+2)*2)*2)*2

(1)*2+2+2+2+2+2+2+2+2+2+2+2

((1)*2+2+2+2+2+2)*2

((1)*2+2+2+2+2)*2+2+2

((1)*2+2+2+2)*2+2+2+2+2

((1)*2+2+2)*2+2+2+2+2+2+2

(((1)*2+2+2)*2)*2

((1)*2+2)*2+2+2+2+2+2+2+2+2

(((1)*2+2)*2+2+2)*2

(((1)*2+2)*2+2)*2+2+2

(((1)*2+2)*2)*2+2+2+2+2

((1)*2)*2+2+2+2+2+2+2+2+2+2+2

(((1)*2)*2+2+2+2+2)*2

(((1)*2)*2+2+2+2)*2+2+2

(((1)*2)*2+2+2)*2+2+2+2+2

(((1)*2)*2+2)*2+2+2+2+2+2+2

((((1)*2)*2+2)*2)*2

(((1)*2)*2)*2+2+2+2+2+2+2+2+2

((((1)*2)*2)*2+2+2)*2

((((1)*2)*2)*2+2)*2+2+2

((((1)*2)*2)*2)*2+2+2+2+2

Var N : Integer;

Procedure GoGo(a : Integer; s : String);

Begin

  If a<=24 then

    If a=24 then

    Begin

      Inc(N);

      Writeln(s);

    end

      else

      Begin

        GoGo(a+2,s+’+2′);

        GoGo(a*2,'(‘+s+’)*2′);

      end;

end;

Begin

  N:=0;

  GoGo(1,’1′);

  Writeln(‘N = ‘,N);

end.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей