Задача 22 Урок 13

Задача 22 Урок 13

Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N, так чтобы ширина "ёлочки" росла волнами. Например, для N=49 получим:
123--сначала до двух456789--потом до трёх101112--возвращаемся к одному131415161718192021--тут уже четыре2223242526--снова убывает 2728293031323334353637383940414243444546474849

program lesson13_22;
var
    c: boolean;
    n, m, b, i, j: integer;
begin
    writeln('enter number n');
    readln(n);
    i := 1;
    b := 1;
    m := 2;
    while i <= n do
    begin
        for j := 1 to b do
        begin
            if i > n then
                break;
            write(i, ' ');
            i := i + 1;
		end;
        writeln();

        if b = 1 then
            c := true
        else if b = m then
        begin
            m := m + 1;
            c := false;
		end;

        if c then
		    b := b + 1
        else
            b := b - 1;

	end;
	readln();
end.
vedro-compota's picture

решить одним циклом

_____________
матфак вгу и остальная классика =)

program lesson13_22;
var
    c : boolean;
    a, b, n, m, i : integer;
begin
    writeln('enter number n');
    readln(n);
    a := 1;
    b := 1;
    m := 2;
    for i := 1 to n do
    begin
        write(i, ' ');
        if a = b then
        begin
            writeln();
            a := 1;

            if b = 1 then
                c := true
            else if b = m then
            begin
                m := m + 1;
                c := false;
			end;

            if c then
                b := b + 1
            else
                b := b - 1;
		end
        else
            a := a + 1;
	end;
    readln();
end.
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)