Предмет: Информатика,
автор: PomogiMnePlis1
У исполнителя Калькулятор две команды, которым присвоены номера:
1. прибавь 2
2. умножь на 2
Сколько есть программ, которые число 1 преобразуют в число 24?
Ответы
Автор ответа:
0
Ответ: 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.
(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.
Похожие вопросы
Предмет: Математика,
автор: galinaavanisan9
Предмет: Немецкий язык,
автор: xaucaz
Предмет: Алгебра,
автор: densvetlitskiy
Предмет: Литература,
автор: dianaishakova
Предмет: История,
автор: angedusiel2005