Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

PL/SQL로 숫자가 회문(Palindrome)인지 확인하는 방법

이 글에서는 PL/SQL을 사용해 숫자가 회문(Palindrome)인지 확인하는 방법을 살펴봅니다. PL/SQL 코드에서는 관련된 선언부와 실행부가 하나의 블록으로 구성되며, 이 블록 안에 일련의 명령어들이 배치됩니다.

회문이란 어떤 수를 거꾸로 뒤집었을 때도 원래의 수와 동일한 값을 갖는 숫자를 의미합니다. 예를 들어 12321은 거꾸로 읽어도 12321이므로 회문이지만, 12345는 거꾸로 읽으면 54321이 되므로 회문이 아닙니다.

PL/SQL 회문 판별 코드

DECLARE
    n number;
    m number;
    temp number:=0;
    rem number;
BEGIN
    n :=12321;
    m :=n;
    while n>0
    loop
        rem := mod(n,10);
        temp := (temp*10)+rem;
        n := trunc(n/10);
    end loop;
    if m = temp
    then
        dbms_output.put_line('Palindrome');
    else
        dbms_output.put_line('Not Palindrome');
    end if;
END;

실행 결과

Palindrome

코드 동작 원리

위 코드의 핵심 로직은 다음과 같습니다.

  • 변수 초기화: 검사할 숫자를 n에 저장하고, 나중에 비교하기 위해 원본 값을 m에 복사해 둡니다. temp는 뒤집힌 숫자를 저장할 변수입니다.
  • 숫자 뒤집기: mod(n, 10) 함수로 마지막 자릿수를 하나씩 추출하고, temp := (temp*10) + rem 연산을 통해 자릿수를 역순으로 쌓아 올립니다. 이후 trunc(n/10)으로 이미 처리한 자릿수를 제거하며, 이 과정을 n이 0이 될 때까지 반복합니다.
  • 비교 및 결과 출력: 반복문이 종료되면 temp에는 원래 숫자가 거꾸로 뒤집힌 값이 저장됩니다. 이 값이 원본 m과 같으면 'Palindrome'을, 다르면 'Not Palindrome'을 출력합니다.

이처럼 PL/SQL의 기본적인 산술 함수와 반복문만으로도 회문 여부를 손쉽게 판별할 수 있습니다.