Не могу понять смысла задачи - C (СИ)
Формулировка задачи:
Совсем не поняла задачу, точнее, что от меня хотят объясните хотя бы, что здесь делать надо, уже несколько часов дальше условия дело не идет
(Неубывающие цепочки) Пусть A=(aj), 1<= j<= n - последовательность из n положительных
целых чисел. Ее подпоследовательность am+1, am+2, ... , am+k называется неубывающей цепочкой длины k, если am+1<= am+2<= ... <= am+k и am> am+1, am+k> am+k+1. При этом a1
всегда является началом цепочки, а an - окончанием или началом. Определить функцию CountSubSet(), получающую вектор B=(bj), 1<= j<= n, у которого bj является числом неубывающих цепочек длины j.
Решение задачи: «Не могу понять смысла задачи»
textual
Листинг программы
int A[] = { 10, 3, 3, 15, 14, 21 }; int B[1000]; int i, c; int a_prev; for (i = 0; i < 1000; i++) { B[i] = 0; if (i >= sizeof(A)/sizeof(int)) B[i] = -1; } a_prev = 0; c = 0; for (i = 0; i < sizeof(A)/sizeof(int); i++) { if (A[i] >= a_prev) { a_prev = A[i]; c++; } else { B[c-1]++; c = 1; a_prev = A[i]; } } if (c != 0) B[c-1]++;
Объяснение кода листинга программы
- Объявлены массивы
A[]
иB[].
- Переменные
i
,c
иa_prev
инициализированы нулевыми значениями. - В цикле
for
заполняются все элементы массиваB[]
нулями. - Если индекс
i
больше или равен размеру массиваA[]
в байтах, деленному на размер одного int, то элементB[i]
устанавливается в -1. - Переменная
a_prev
инициализируется значением первого элемента массиваA[]
, а переменнаяc
инициализируется значением 1. - В цикле
for
происходит подсчет количества элементов массиваA[]
, которые больше значенияa_prev
. При каждом увеличении значенияa_prev
на единицу, счетчикc
увеличивается на единицу. Если встречается элементA[i]
, который меньше значенияa_prev
, то значение счетчикаc
сбрасывается в 1, а значениеa_prev
обновляется. - Если цикл
for
завершился, а значение счетчикаc
не равно нулю, то значениеB[c-1]
увеличивается на единицу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д