Подсчитайте количество всех возможных линейных троек - 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.
Объяснение кода листинга программы
- Введенные данные:
- Отсортированное множество из 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) и запрашивается ввод.
- Список действий:
- Инициализация переменной 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).
- Запрос ввода для завершения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д