Задача 18 Урок 13.1
Primary tabs
{13.1 — 18 Модифицируйте решение предыдущей задачи,
так, чтобы длина возрастающего фрагмента
каждый раз увеличивалась на единицу (начиная с двух):
8 10 3 10 12 14 3 16 18 20 22 3....3....}
var n,m,f,i: integer;
begin
f:=8;
m:=2;
writeln('write num >= 0');
readln(n);
if (n<0) then
writeln('err: your num < 0')
else
begin
while (f<n) do
begin
for i:=1 to m do
begin
if (f>=n) then
break;
write(f,' ');
f:=f+2;
end;
write(3,' ');
m:=m+1;
end;
end;
readln();
end.//write num >= 0 //33 //8 10 3 12 14 16 3 18 20 22 24 3 26 28 30 32 3
- Log in to post comments
- 2650 reads
i_love_cookies
Sat, 05/15/2021 - 07:18
Permalink
решение одним циклом используя делимость нацело
var n,m,f,i: integer; begin f:=8; m:=1; i:=2; writeln('write num >= 0'); readln(n); if (n<0) then writeln('err: your num < 0') else begin while (f<n) do begin write(f,' '); f:=f+2; if (m div i = 1)then begin write(3,' '); i:=i+1; m:=1; end else m:=m+1; end; end; writeln('over'); readln(); end. begini_love_cookies
Sat, 05/15/2021 - 07:19
Permalink
решение одним циклом НЕ используя делимость нацело
var n,m,f,i: integer; begin f:=8; m:=1; i:=2; writeln('write num >= 0'); readln(n); if (n<0) then writeln('err: your num < 0') else begin while (f<n) do begin write(f,' '); f:=f+2; if (m = i) then begin write(3,' '); i:=i+1; m:=1; end else m:=m+1; end; end; writeln('over'); readln(); end. beginvedro-compota
Sat, 05/15/2021 - 16:40
Permalink
while (f<n) do
Если число повторений известно - то лучше использовать цикл for. Решение засчитано
_____________
матфак вгу и остальная классика =)