Задача 18 Урок 13.1
Primary tabs
Модифицируйте решение предыдущей задачи, так, чтобы длина возрастающего фрагмента каждый раз увеличивалась на единицу (начиная с двух):
810два числа3101214три числа316182022четыре числа3....3....и т.д.
ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело (для определения момента вывода тройки), так и не используя.
Решите всеми тремя способами.
1) С помощью вложенных циклов
program U131Z18; var n,s,m,k: integer; begin writeln('vvedite polozhitelnoe chislo'); readln(n); if n<0 then writeln('oshibka') else begin m:=2; s:=0; k:=8; while k<=n do begin while (k<=n) and (s<m) do begin write(k,' '); k:=k+2; s:=s+1; end; write('3 '); m:=m+1; s:=0; end; end; readln(); end.
2) используя делимость нацело
program U131Z18; var n,s,m,k: integer; begin writeln('vvedite polozhitelnoe chislo'); readln(n); if n<0 then writeln('oshibka') else begin m:=2; s:=0; k:=8; while k<=n do begin write(k,' '); k:=k+2; s:=s+1; if ((s mod m)=0) then begin write('3 '); m:=m+1; s:=0; end; end; end; readln(); end.
3) НЕ используя делимость нацело
program U131Z18; var n,s,m,k: integer; begin writeln('vvedite polozhitelnoe chislo'); readln(n); if n<0 then writeln('oshibka') else begin m:=2; s:=0; k:=8; while k<=n do begin write(k,' '); k:=k+2; s:=s+1; if (s=m) then begin write('3 '); m:=m+1; s:=0; end; end; end; readln(); end.
- Log in to post comments
- 1074 reads
vedro-compota
Tue, 09/14/2021 - 22:42
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)