재귀를 사용한 회문 (Palindrome) 확인

CBeginner
지금 연습하기

소개

이 랩에서는 C 프로그래밍 언어에서 재귀 (recursion) 를 사용하여 주어진 숫자가 회문 (palindrome) 인지 확인하는 방법을 배웁니다. 회문은 뒤집었을 때 원래 시퀀스와 동일하게 보이는 시퀀스입니다. 예를 들어, abba, level, 999 등이 있습니다.

main 함수 생성

main.c 파일에서 다음 코드 블록을 포함하는 main 함수를 생성합니다. 사용자로부터 정수를 입력받아 isPal 함수를 호출하여 숫자가 회문인지 확인합니다.

#include<stdio.h>
int isPal(int );
int n;
int main()
{
  printf("\nEnter a number to check for Palindrome: ");
  scanf("%d", &n);
  isPal(n);
  return 0;
}

재귀를 사용하여 isPal 함수 생성

isPal 함수는 정수를 인수로 받아 회문 여부를 반환합니다. 회문 조건을 확인하기 위해 재귀 (recursion) 를 사용합니다. 회문 조건이 충족되면 1 을 반환하여 입력된 숫자가 회문임을 나타냅니다. 그렇지 않으면 0 을 반환합니다.

int isPal(int aj)
{
    static int sum = 0;
    if(aj != 0)
    {
        sum = sum *10 + aj%10;
        isPal(aj/10);
    }
    else if(sum == n)
        printf("%d is palindrome.\n",n);
    else
        printf("%d is not palindrome.\n",n);
    return 0;
}

코드 컴파일 및 실행

다음 명령을 사용하여 코드를 컴파일합니다: gcc -o main main.c

다음 명령을 사용하여 코드를 실행합니다: ./main

회문 여부를 확인할 숫자를 입력합니다.

프로그램 출력 결과

프로그램의 출력은 제공된 입력 숫자가 회문인지 여부를 보여줍니다.

요약

이번 랩에서는 C 프로그램을 사용하여 재귀 (recursion) 를 통해 주어진 숫자가 회문 (palindrome) 인지 확인하는 방법을 배웠습니다. 회문은 컴퓨터 과학에서 중요한 개념이며, 문자열 매칭 알고리즘을 포함한 다양한 응용 분야에서 사용됩니다. 이 랩이 재귀와 C 프로그래밍 언어 개념을 이해하는 데 도움이 되었기를 바랍니다.