Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

PL/SQL로 숫자 반전시키기: 단계별 프로그래밍 가이드

PL/SQL은 SQL의 강력한 기능과 절차적 프로그래밍 명령어를 하나로 결합한 블록 구조 언어입니다. 이 글에서는 주어진 숫자를 거꾸로 뒤집는(반전시키는) PL/SQL 프로그램을 작성하는 방법을 알아보겠습니다.

문제 정의

먼저 예제를 통해 문제를 살펴보겠습니다.

입력 : 98765
출력 : 56789
설명 : 98765를 반전시킨 숫자는 56789입니다.

입력 : 56784
출력 : 48765
설명 : '56784'를 반전시킨 숫자는 '48765'입니다.

해결 접근 방식

숫자를 반전시키는 핵심 아이디어는 각 자릿수를 하나씩 분리한 후, 역순으로 다시 조립하는 것입니다. 다음 단계를 따릅니다.

  • 1단계: num/10의 나머지(MOD 연산)를 구하여 숫자의 마지막 자릿수를 추출합니다.
  • 2단계: 추출한 마지막 자릿수를 결과를 저장할 변수 reverse_num에 추가합니다. 기존 값에 10을 곱한 후 더하면 자릿수가 왼쪽으로 밀려나게 됩니다.
  • 3단계: 원본 숫자 num이 0이 되었는지 확인합니다.
    • 0이 아니라면 → 1단계로 돌아가 반복합니다.
    • 0이라면 → 4단계로 이동합니다.
  • 4단계: 최종적으로 반전된 숫자 reverse_num을 출력합니다.

구현 코드 예제

위 알고리즘을 PL/SQL로 구현한 코드는 다음과 같습니다.

DECLARE
  num number;
  reverse_num number := 0;

begin
  num := 98765;
  while num > 0
  loop
    reverse_num := (reverse_num * 10) + mod(num, 10);
    num := trunc(num / 10);
  end loop;

  dbms_output.put_line(' Reversed number is : ' || reverse_num);

end;

코드 동작 원리

mod(num, 10) 함수는 숫자를 10으로 나눈 나머지, 즉 마지막 자릿수를 반환합니다. 그리고 trunc(num / 10) 함수는 소수점 이하를 버린 몫을 반환하여 마지막 자릿수를 제거한 값을 만들어 줍니다. 이 두 연산이 WHILE 루프 안에서 반복되면서 숫자가 한 자릿수씩 처리되고, reverse_num * 10을 통해 새 자릿수가 계속 오른쪽에 추가됩니다.

실행 결과

Reversed number is: 56789

마무리

이번 글에서는 영어 문장을 쓰듯 직관적으로 시스템에 명령할 수 있어 배우기 쉬운 PL/SQL 프로그래밍 언어에 대해 살펴보았습니다. 또한 MOD와 TRUNC 함수를 활용해 WHILE 루프로 숫자를 반전시키는 실용적인 예제를 함께 다루었습니다. 이러한 자릿수 조작 기법은 회문(palindrome) 판별, 자릿수 합계 계산 등 다양한 문제에도 응용할 수 있으니 꼭 기억해 두시기 바랍니다. 이 글이 여러분의 학습에 도움이 되기를 바랍니다.