Подсчитайте количество всех возможных линейных троек - Free Pascal

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

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

Упорядоченная тройка чисел (s1,s2,s3) называется линейной, если равны разности s2-s1 и s3-s2. Например: (1,2,3), (2,4,6), (14,21,28). Вам дано отсортированное множество из N (3 <= N <= 30) уникальных целых чисел в диапазоне от 1 до 100. Подсчитайте количество всех возможных линейных троек, которые можно из них сформировать.

Решение задачи: «Подсчитайте количество всех возможных линейных троек»

textual
Листинг программы
{Упорядоченная тройка чисел (s1,s2,s3) называется линейной, если
равны разности s2-s1 и s3-s2. Например: (1,2,3), (2,4,6), (14,21,28).
Вам дано отсортированное множество из N (3 <= N <= 30) уникальных целых
чисел в диапазоне от 1 до 100. Подсчитайте количество всех возможных
линейных троек, которые можно из них сформировать.}
const
  n=6;
var
  x:array [1..n] of word;
  k,i:word;
function IfLinear(s1,s2,s3:word):boolean;
begin
  IfLinear:=(s2-s1)=(s3-s2);
end;
begin
  k:=0;
  x[1]:=2; x[2]:=4; x[3]:=6; x[4]:=14; x[5]:=21; x[6]:=28;
  for i:=2 to n-1 do
    if iflinear(x[i-1],x[i],x[i+1]) then
      inc(k);
  writeln('Количество всех возможных линейных троек: ',k);
  readln;
end.

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

  1. Введенные данные:
    • Отсортированное множество из N уникальных целых чисел в диапазоне от 1 до 100, где 3 <= N <= 30.
    • N = 6.
    • Введенная сортировка может быть использована для оптимизации поиска линейных троек.
    • Переменная k инициализируется значением 0 и используется для подсчета количества линейных троек.
    • Переменная i используется в цикле для итерации по элементам массива x.
    • Функция IfLinear(s1,s2,s3:word):boolean) используется для проверки, является ли тройка чисел линейной.
    • Если условие (s2-s1)=(s3-s2) выполняется, то функция возвращает true, иначе - false.
    • Исходя из определения, линейная тройка чисел (s1,s2,s3) имеет одинаковые разности s2-s1 и s3-s2.
    • Исходя из этого, для проверки линейности тройки чисел достаточно проверить равенство этих разностей.
    • В цикле проверяются все возможные тройки чисел, начиная с элемента x[2] и заканчивая x[n-1].
    • Если тройка чисел является линейной, то к переменной k прибавляется единица.
    • В конце программы выводится количество всех возможных линейных троек (значение переменной k) и запрашивается ввод.
  2. Список действий:
    • Инициализация переменной k значением 0.
    • Инициализация элементов массива x значениями 2, 4, 6, 14, 21, 28.
    • Цикл начинается с элемента x[2] и заканчивается x[n-1].
    • Проверка, является ли текущая тройка чисел линейной, с помощью функции IfLinear(x[i-1],x[i],x[i+1]).
    • Если тройка чисел является линейной, то к переменной k прибавляется единица.
    • После завершения цикла выводится количество всех возможных линейных троек (значение переменной k).
    • Запрос ввода для завершения программы.

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


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

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

10   голосов , оценка 4.3 из 5
Похожие ответы