Здравствуйте! Помогите пожалуйста написать программу с объяснением (PascalABC) Даны...

0 голосов
30 просмотров

Здравствуйте! Помогите пожалуйста написать программу с объяснением (PascalABC)

Даны первые 4 строки:
1) 1
2) 112
3) 1121123
4) 112112311211234 и т. д.
Написать программу выводящую N строку (N<=20)


Информатика (50 баллов) | 30 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Заметим, чтобы сгенерировать строку, нужно знать только предыдущую строку. Будет генерировать по порядку от 1 до n-ой строки.

Программа:

var
  n, i: integer;
  cur_str, prev_str: string;
begin
  read(n);
  prev_str := '';
  for i := 1 to n do {Генерируем строки по порядку от 1 до n}
  begin
    str(i, cur_str); {Записываем в текущую строку её порядковый номер}
    cur_str := prev_str + prev_str + cur_str; {Дописываем предыдущую строку два раза в начало}
    prev_str := cur_str; {Записываем текущею строку вместо предудущей}
  end;
  writeln(cur_str);
end.

(13.3k баллов)