C 언어로 회문 (Palindrome) 확인하기

CBeginner
지금 연습하기

소개

이 랩에서는 C 프로그램을 작성하여 숫자가 회문 (palindrome) 인지 확인하는 방법을 배웁니다. 주어진 단계를 따라 이를 수행할 것입니다.

참고: 코딩을 연습하고 gcc 를 사용하여 컴파일하고 실행하는 방법을 배우려면 직접 ~/project/main.c 파일을 생성해야 합니다.

cd ~/project
## main.c 생성
touch main.c
## main.c 컴파일
gcc main.c -o main
## 실행
./main

회문 (Palindrome) 이해하기

**회문 (Palindrome)**은 앞에서 읽거나 뒤에서 읽을 때 동일하게 읽히는 숫자 또는 문자열입니다. 예를 들어, 121 또는 "racecar"가 있습니다.

변수 초기화

프로그램에 필요한 변수를 초기화하는 것으로 시작합니다. 주어진 프로그램에서는 a, b, c, s의 네 개의 변수를 사용했습니다. 이러한 변수를 사용하여 필요한 연산을 수행할 것입니다.

#include<stdio.h>

int main()
{
    int a, b, c, s = 0;
    printf("Enter a number: ");
    scanf("%d", &a);
    c = a;
}

숫자 뒤집기

회문인지 확인하기 위해 원래 숫자와 비교할 수 있도록 숫자를 뒤집습니다. while 루프를 사용하여 숫자를 뒤집습니다.

while(a > 0)
{
    b = a % 10; //extract last digit
    s = (s * 10) + b; //add the last digit to the reversed number
    a = a / 10; //remove the last digit from the original number
}

원본 숫자와 뒤집힌 숫자 비교

마지막으로, 뒤집힌 숫자를 원래 숫자와 비교하여 회문인지 확인합니다.

if(s == c)
{
    printf("%d is a Palindrome", c);
}
else
{
    printf("%d is not a Palindrome", c);
}

전체 코드

다음은 프로그램의 전체 코드입니다.

#include<stdio.h>

int main()
{
    int a, b, c, s = 0;

    printf("Enter a number: ");
    scanf("%d", &a);
    c = a;

    while(a > 0)
    {
        b = a % 10;
        s = (s * 10) + b;
        a = a / 10;
    }

    if(s == c)
    {
        printf("%d is a Palindrome", c);
    }
    else
    {
        printf("%d is not a Palindrome", c);
    }

    return 0;
}

요약

이 랩에서는 숫자가 회문 (palindrome) 인지 확인하는 C 프로그램을 작성하는 방법을 배웠습니다. 회문 확인의 논리를 배우고 프로그램을 통해 구현했습니다. 이제 이 개념에 대한 이해도가 높아졌으며, 더 복잡한 프로그램에서도 이를 구현할 수 있습니다.