Задача 19 урока 13.1 (Елка)

Задача 19 урока 13.1 (Елка)

19)Пользователь передает целое положительное число N, выведете на экран последовательность от 1 до N "ёлочкой", например для N=17:

1
2 3
4 5 6
7 8 9 10
11 12 13 14
15 16 17
ПРИМЕЧАНИЕ: эту задачу можно решить, как вложенными циклами, так и вообще одним циклом (что более изящно), при этом решение одним циклом можно сделать, как используя делимость нацело, так и не используя.
Решите всеми тремя способами.
var N,M,a,b: integer;

begin
  a := 0;
  writeln('vvedite cislo N');
  readln(N);
  M := 1;
  if (N > 0) then
      begin
        b := M;
        while (a < N) do
         begin
           a := a + 1;
           write(a, ' ');
           M := M - 1;
           if ((M div 1) = 0 ) then
            begin
              writeln();
              M := b + 1;
              b := M;
            end;
         end;
      end
    else writeln('osibka');
end.
vedro-compota's picture

1)

M div 1) = 0

упростить условие

2)

 while (a < N) do

-- желательно переписать на for

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

Romakip's picture

var N,M,a,b,i: integer;

begin
  a := 0;
  writeln('vvedite cislo N');
  readln(N);
  M := 1;
  if (N > 0) then
      begin
        b := M;
        for i:= 1 to N do
         begin
           a := a + 1;
           write(a, ' ');
           M := M - 1;
           if (M = 0) then
            begin
              writeln();
              M := b + 1;
              b := M;
            end;
         end;
      end
    else writeln('osibka');
end.
vedro-compota's picture

1)

 a := a + 1;

-- лишняя переменная.

1) лучше не так:

M := b + 1;
b := M;

а так:

b := b + 1;
M := b;

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