Урок 13.1. Задача 17.
Primary tabs
Модифицируйте решение предыдущей задачи, так, чтобы длина возрастающего фрагмента каждый раз увеличивалась на единицу (начиная с двух):
8 10 3 10 12 14 3 16 18 20 22 3....3....и т.д.
ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело (для определения момента вывода тройки), так и не используя.
#1
var N, a, b, c, i : integer;
begin
write('Enter an integer 7+ : ');
readln(N);
a := 8;
b := 8;
c := 2;
if N < 8 then
writeln('Error')
else
while (a < N) do
begin
a := a + 3;
for i := 1 to c do
begin
if (b <= N) then
write(b, ' ');
b := b + 2;
end;
if b <= N then
write(3, ' ');
c := c + 1;
end;
readln();
end.
#2
var N, a, b, c, i : integer;
begin
write('Enter an integer 7+ : ');
readln(N);
a := 8;
b := 0;
c := 2;
if N < 8 then
writeln('Error')
else
for i := a to N do
begin
if (i mod 2 = 0) then
begin
b := b + 1;
write(i, ' ');
end
else
if (b = c) then
begin
c := c + 1;
b := 0;
write(3,' ');
end;
end;
readln();
end.
- Log in to post comments
- 409 reads