Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C kiểm tra mảng đối xứng (Palindrome) bằng đệ quy

Cho mảng arr[n], kiểm tra xem có phải mảng đối xứng (palindrome) hay không bằng đệ quy.

Mảng đối xứng: đọc từ đầu đến cuối và từ cuối về đầu giống nhau. Ví dụ: {2,3,4,3,2}.

Ví dụ

Input: {2,3,4,3,2} → Output: Yes, mảng đối xứng
Input: {1,2,3,4} → Output: No, không đối xứng

Phương pháp đệ quy:

  • So sánh arr[start] và arr[end].
  • Nếu bằng nhau: gọi đệ quy với start+1, end-1.
  • Nếu start >= end: trả về true.
  • Nếu khác nhau: trả về false.

Mã nguồn C

#include <stdio.h>

int palindrome(int arr[], int start, int end) {
    if (start >= end) return 1;
    if (arr[start] == arr[end])
        return palindrome(arr, start + 1, end - 1);
    else
        return 0;
}

int main() {
    int arr[] = {1, 2, 0, 2, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    if (palindrome(arr, 0, n - 1))
        printf("Mảng là đối xứng (Palindrome)\n");
    else
        printf("Mảng không đối xứng\n");
    return 0;
}

Kết quả

Mảng là đối xứng (Palindrome)