Procedure Go(a : Byte; a4,a9 : boolean; s : String); Begin If (a=Finish) and a4 and a9 then Begin Inc(N); Writeln(s); end else If a<Finish then Begin a4:=a4 or (a=4); a9:=a9 or (a=9); Go(a+1,a4,a9,s+'+1'); Go(a+2,a4,a9,s+'+2'); Go(a*3,a4,a9,s+'*3'); end; end;
Begin N:=0; Go(1,false,false,'1'); Writeln('Всего вариантов: ',N); end.
Если требуется выводить соответствующее сообщение в случае, когда таких чисел нет: var i, x, k : integer; Begin k:=0; for i:=1 to 5 do begin readln(x); if ((x>0) and (x<5)) or ((x>-8) and (x<-1)) then begin k:=k+1; writeln(x); end; end; if k=0 then writeln('нет таких чисел'); End.
Если требуется выводить соответствующее сообщение каждый раз когда число не входит в промежуток: var i, x : integer; Begin for i:=1 to 5 do begin readln(x); if ((x>0) and (x<5)) or ((x>-8) and (x<-1)) then writeln(x) else writeln(x,' не входит в промежуток'); end; End.
ответ: 160
Const Finish = 13;
Var N : integer;
Procedure Go(a : Byte; a4,a9 : boolean; s : String);
Begin
If (a=Finish) and a4 and a9 then
Begin
Inc(N);
Writeln(s);
end
else
If a<Finish then
Begin
a4:=a4 or (a=4);
a9:=a9 or (a=9);
Go(a+1,a4,a9,s+'+1');
Go(a+2,a4,a9,s+'+2');
Go(a*3,a4,a9,s+'*3');
end;
end;
Begin
N:=0;
Go(1,false,false,'1');
Writeln('Всего вариантов: ',N);
end.
Результат:
1+1+1+1+1+1+1+1+1+1+1+1+1
1+1+1+1+1+1+1+1+1+1+1+2
1+1+1+1+1+1+1+1+1+1+2+1
1+1+1+1+1+1+1+1+1+2+1+1
1+1+1+1+1+1+1+1+1+2+2
1+1+1+1+1+1+1+2+1+1+1+1
1+1+1+1+1+1+1+2+1+1+2
1+1+1+1+1+1+1+2+1+2+1
1+1+1+1+1+1+1+2+2+1+1
1+1+1+1+1+1+1+2+2+2
1+1+1+1+1+1+2+1+1+1+1+1
1+1+1+1+1+1+2+1+1+1+2
1+1+1+1+1+1+2+1+1+2+1
1+1+1+1+1+1+2+1+2+1+1
1+1+1+1+1+1+2+1+2+2
1+1+1+1+1+2+1+1+1+1+1+1
1+1+1+1+1+2+1+1+1+1+2
1+1+1+1+1+2+1+1+1+2+1
1+1+1+1+1+2+1+1+2+1+1
1+1+1+1+1+2+1+1+2+2
1+1+1+1+1+2+2+1+1+1+1
1+1+1+1+1+2+2+1+1+2
1+1+1+1+1+2+2+1+2+1
1+1+1+1+1+2+2+2+1+1
1+1+1+1+1+2+2+2+2
1+1+1+1+2+1+1+1+1+1+1+1
1+1+1+1+2+1+1+1+1+1+2
1+1+1+1+2+1+1+1+1+2+1
1+1+1+1+2+1+1+1+2+1+1
1+1+1+1+2+1+1+1+2+2
1+1+1+1+2+1+2+1+1+1+1
1+1+1+1+2+1+2+1+1+2
1+1+1+1+2+1+2+1+2+1
1+1+1+1+2+1+2+2+1+1
1+1+1+1+2+1+2+2+2
1+1+1+1+2+2+1+1+1+1+1
1+1+1+1+2+2+1+1+1+2
1+1+1+1+2+2+1+1+2+1
1+1+1+1+2+2+1+2+1+1
1+1+1+1+2+2+1+2+2
1+1+2+1+1+1+1+1+1+1+1+1
1+1+2+1+1+1+1+1+1+1+2
1+1+2+1+1+1+1+1+1+2+1
1+1+2+1+1+1+1+1+2+1+1
1+1+2+1+1+1+1+1+2+2
1+1+2+1+1+1+2+1+1+1+1
1+1+2+1+1+1+2+1+1+2
1+1+2+1+1+1+2+1+2+1
1+1+2+1+1+1+2+2+1+1
1+1+2+1+1+1+2+2+2
1+1+2+1+1+2+1+1+1+1+1
1+1+2+1+1+2+1+1+1+2
1+1+2+1+1+2+1+1+2+1
1+1+2+1+1+2+1+2+1+1
1+1+2+1+1+2+1+2+2
1+1+2+1+2+1+1+1+1+1+1
1+1+2+1+2+1+1+1+1+2
1+1+2+1+2+1+1+1+2+1
1+1+2+1+2+1+1+2+1+1
1+1+2+1+2+1+1+2+2
1+1+2+1+2+2+1+1+1+1
1+1+2+1+2+2+1+1+2
1+1+2+1+2+2+1+2+1
1+1+2+1+2+2+2+1+1
1+1+2+1+2+2+2+2
1+1+2+2+1+1+1+1+1+1+1
1+1+2+2+1+1+1+1+1+2
1+1+2+2+1+1+1+1+2+1
1+1+2+2+1+1+1+2+1+1
1+1+2+2+1+1+1+2+2
1+1+2+2+1+2+1+1+1+1
1+1+2+2+1+2+1+1+2
1+1+2+2+1+2+1+2+1
1+1+2+2+1+2+2+1+1
1+1+2+2+1+2+2+2
1+1+2+2+2+1+1+1+1+1
1+1+2+2+2+1+1+1+2
1+1+2+2+2+1+1+2+1
1+1+2+2+2+1+2+1+1
1+1+2+2+2+1+2+2
1+2+1+1+1+1+1+1+1+1+1+1
1+2+1+1+1+1+1+1+1+1+2
1+2+1+1+1+1+1+1+1+2+1
1+2+1+1+1+1+1+1+2+1+1
1+2+1+1+1+1+1+1+2+2
1+2+1+1+1+1+2+1+1+1+1
1+2+1+1+1+1+2+1+1+2
1+2+1+1+1+1+2+1+2+1
1+2+1+1+1+1+2+2+1+1
1+2+1+1+1+1+2+2+2
1+2+1+1+1+2+1+1+1+1+1
1+2+1+1+1+2+1+1+1+2
1+2+1+1+1+2+1+1+2+1
1+2+1+1+1+2+1+2+1+1
1+2+1+1+1+2+1+2+2
1+2+1+1+2+1+1+1+1+1+1
1+2+1+1+2+1+1+1+1+2
1+2+1+1+2+1+1+1+2+1
1+2+1+1+2+1+1+2+1+1
1+2+1+1+2+1+1+2+2
1+2+1+1+2+2+1+1+1+1
1+2+1+1+2+2+1+1+2
1+2+1+1+2+2+1+2+1
1+2+1+1+2+2+2+1+1
1+2+1+1+2+2+2+2
1+2+1+2+1+1+1+1+1+1+1
1+2+1+2+1+1+1+1+1+2
1+2+1+2+1+1+1+1+2+1
1+2+1+2+1+1+1+2+1+1
1+2+1+2+1+1+1+2+2
1+2+1+2+1+2+1+1+1+1
1+2+1+2+1+2+1+1+2
1+2+1+2+1+2+1+2+1
1+2+1+2+1+2+2+1+1
1+2+1+2+1+2+2+2
1+2+1+2+2+1+1+1+1+1
1+2+1+2+2+1+1+1+2
1+2+1+2+2+1+1+2+1
1+2+1+2+2+1+2+1+1
1+2+1+2+2+1+2+2
1*3+1+1+1+1+1+1+1+1+1+1
1*3+1+1+1+1+1+1+1+1+2
1*3+1+1+1+1+1+1+1+2+1
1*3+1+1+1+1+1+1+2+1+1
1*3+1+1+1+1+1+1+2+2
1*3+1+1+1+1+2+1+1+1+1
1*3+1+1+1+1+2+1+1+2
1*3+1+1+1+1+2+1+2+1
1*3+1+1+1+1+2+2+1+1
1*3+1+1+1+1+2+2+2
1*3+1+1+1+2+1+1+1+1+1
1*3+1+1+1+2+1+1+1+2
1*3+1+1+1+2+1+1+2+1
1*3+1+1+1+2+1+2+1+1
1*3+1+1+1+2+1+2+2
1*3+1+1+2+1+1+1+1+1+1
1*3+1+1+2+1+1+1+1+2
1*3+1+1+2+1+1+1+2+1
1*3+1+1+2+1+1+2+1+1
1*3+1+1+2+1+1+2+2
1*3+1+1+2+2+1+1+1+1
1*3+1+1+2+2+1+1+2
1*3+1+1+2+2+1+2+1
1*3+1+1+2+2+2+1+1
1*3+1+1+2+2+2+2
1*3+1+2+1+1+1+1+1+1+1
1*3+1+2+1+1+1+1+1+2
1*3+1+2+1+1+1+1+2+1
1*3+1+2+1+1+1+2+1+1
1*3+1+2+1+1+1+2+2
1*3+1+2+1+2+1+1+1+1
1*3+1+2+1+2+1+1+2
1*3+1+2+1+2+1+2+1
1*3+1+2+1+2+2+1+1
1*3+1+2+1+2+2+2
1*3+1+2+2+1+1+1+1+1
1*3+1+2+2+1+1+1+2
1*3+1+2+2+1+1+2+1
1*3+1+2+2+1+2+1+1
1*3+1+2+2+1+2+2
Всего вариантов: 160
var i, x, k : integer;
Begin
k:=0;
for i:=1 to 5 do begin
readln(x);
if ((x>0) and (x<5)) or ((x>-8) and (x<-1)) then begin
k:=k+1;
writeln(x);
end;
end;
if k=0 then writeln('нет таких чисел');
End.
Если требуется выводить соответствующее сообщение каждый раз когда число не входит в промежуток:
var i, x : integer;
Begin
for i:=1 to 5 do begin
readln(x);
if ((x>0) and (x<5)) or ((x>-8) and (x<-1)) then
writeln(x)
else writeln(x,' не входит в промежуток');
end;
End.