Урок 13.1 задача 17
Primary tabs
Модифицируйте решение предыдущей задачи, так, чтобы длина возрастающего фрагмента каждый раз увеличивалась на единицу (начиная с двух)
ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело (для определения момента вывода тройки), так и не используя.
Решите всеми тремя способами.
1. Решение с одним циклом без делимости нацело
program Project1; var m,n,i,j: integer; begin j:=6; i:=0; write('Vvedite N: '); readln(n); write('Vvedite M: '); readln(m); if(n<8)then write('ERROR!') else begin while(j<n)do begin i:=i+1; if(i<>m+1)then begin j:=j+2; write(j,' ') end else begin write(3,' '); i:=0; m:=m+1; end; end; end; readln(); end.
2. Решение с одним циклом с делимостью нацело
program Project1; var m,n,i,j: integer; begin j:=6; i:=0; m:=2; write('Vvedite N: '); readln(n); if(n<8)then write('ERROR!') else begin while(j<n)do begin i:=i+1; if(i mod(m+1)<>0)then begin j:=j+2; write(j,' ') end else begin write(3,' '); i:=0; m:=m+1; end; end; end; readln(); end.
3.Решение с помощью вложенных циклов
program Project1; var n,i,j,m: integer; begin j:=8; m:=2; i:=0; write('Vvedite N: '); readln(n); if(n<0)then write('ERROR!') else begin while(j<=n)do begin while (j<=n) and (i<m) do begin write(j,' '); j:=j+2; i:=i+1; end; if(i<>m)then break else begin write('3 '); m:=m+1; i:=0; end; end; end; readln(); end.
- Log in to post comments
- 940 reads
vedro-compota
Sun, 11/07/2021 - 13:33
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)