Урок 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
- 1394 reads
vedro-compota
Sun, 11/07/2021 - 13:33
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)