Задача 22 Урок 13.1
Primary tabs
Задача 22 Урок 13.1Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами. Например, для N=49 получим:
1
2 3--сначала до двух
4
5 6
7 8 9--потом до трёх
10 11
12--возвращаемся к одному
13 14
15 16 17
18 19 20 21--тут уже четыре
22 23 24
25 26--снова убывает
27
28 29
30 31 32
33 34 35 36
37 38 39 40 41
42 43 44 45
46 47 48
49
var
n, m, i, j, count: integer;
flag: boolean;
begin
n:= 49;//число введенной пользователем
m:= 1;//max кол-во символов в строке
j:= 0;//количество символов в строке
count:= 1;// счетчик
for i:= 1 to n do
begin
write(i, ' ');
j:= j + 1;
if (count = 1) then
begin
flag:= true;
m:= m + 1;
end;
if (j = count) then
begin
writeln();
if (count < m) and flag then
count:= count + 1
else
begin
count:= count - 1;
flag:= false;
end;
j:= 0;
end;
end;
readln();
end. - Log in to post comments
- 1804 reads
vedro-compota
Sun, 08/29/2021 - 12:11
Permalink
count:= 1;// счетчик
-- неточно, уточнить смысл
-- избыточное условие
_____________
матфак вгу и остальная классика =)
alterMann
Mon, 09/06/2021 - 17:50
Permalink
Переделал
var N, M, i, j, count: integer; flag: boolean; begin N:= 50;//число введенной пользователем i:= 1;//счетчик основного цикла j:= 0;//количество символов в текущей строке count:= 1;//max кол-во символов в текущей строке M:= 1;//max кол-во символов в строке flag:= true; for i:= 1 to N do begin write(i, ' '); j:= j + 1; if (j = count) then begin writeln(); if count = m then begin flag:= false; inc(m); end; if count = 1 then flag:= true; if flag then count:= count + 1; if (not flag) then count:= count - 1; j:= 0; end; end; readln(); end.