Дан массив из N элементов. Определить, является ли он симметричным относительно своей середины - C (СИ)
Формулировка задачи:
Дан массив из N элементов. Определить, является ли он симметричным относительно своей середины ( например А=(1,3,5,3,1)-симметричный, а А=(3,12,-5,-5,12,1)-нет).
Решение задачи: «Дан массив из N элементов. Определить, является ли он симметричным относительно своей середины»
textual
Листинг программы
int isSym(int * A, int n)
{
if (n<=1) return 1;
if (A[0] != A[n-1]) return 0;
return isSym(A+1, n-2);
}
Объяснение кода листинга программы
В данном коде функция isSym принимает два аргумента:
- Указатель на первый элемент массива A.
- Размер массива n. Если размер массива меньше или равен 1, то функция возвращает 1, так как любой массив с размером 0 или 1 является симметричным относительно своей середины. Если первый и последний элементы массива не равны друг другу, то функция возвращает 0, так как массив не является симметричным. Если оба условия не выполняются, то функция вызывает саму себя, передавая в нее указатель на следующий элемент массива и размер массива уменьшенный на 2. Это происходит до тех пор, пока не будет выполнено одно из условий для возврата значения. Таким образом, функция проверяет симметрию массива, начиная с его первого элемента, сравнивая его со всеми последующими элементами до середины массива. Если все элементы равны, то массив является симметричным относительно своей середины.