Вывести первые n членов треугольной последовательности - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Дана монотонная последовательность, в которой каждое натуральное число k встречается ровно k раз: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, ... По данному натуральному n выведите первые n членов этой последовательности. Попробуйте обойтись только одним циклом for. Входные данные Вводится натурально число n. Выходные данные Выведите ответ на задачу. Примеры входные данные 2 выходные данные 1 2 входные данные 5 выходные данные 1 2 2 3 3

Решение задачи: «Вывести первые n членов треугольной последовательности»

textual
Листинг программы
  1. //рекурсивная процедура вывода чисел ряда
  2. //k-число n-количество выводимых чисел
  3. procedure vyvod(k,n:integer);
  4. begin
  5. if n>0 then
  6.  begin
  7.   write(k,' ');
  8.   vyvod(k,n-1);
  9.  end;
  10. end;
  11. var n,k,q,i:integer;
  12.     a:real;
  13. begin
  14. write('n=');
  15. readln(n);
  16. //найдем ближайшее треугольное число сверху
  17. a:=(-1+sqrt(1+8*n))/2;//из формулы Tn=n*(n+1)/2
  18. if frac(a)=0 then k:=trunc(a)
  19. else k:=trunc(a)+1;
  20. q:=0;
  21. for i:=1 to k-1 do
  22.  begin
  23.   vyvod(i,i);
  24.   q:=q+i;
  25.  end;
  26. vyvod(k,n-q);
  27. end.

Объяснение кода листинга программы

  1. В начале кода объявляются переменные n, k, q и i, а также переменная a типа real.
  2. Затем происходит чтение значения переменной n с помощью функции readln.
  3. Находится ближайшее треугольное число сверху с помощью формулы Tn=n*(n+1)/2. Если дробная часть этого числа равна нулю, то k присваивается целая часть числа, иначе k присваивается целая часть плюс единица.
  4. Переменная q инициализируется значением 0.
  5. Затем происходит цикл for, который выполняется от 1 до k-1. Внутри цикла вызывается рекурсивная процедура vyvod, которая выводит текущее значение i и все предыдущие значения i. Значение i увеличивается на 1 на каждой итерации цикла.
  6. После завершения цикла for вызывается последняя итерация vyvod с аргументами k и n-q.
  7. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы