>  기사  >  백엔드 개발  >  C++에서 숫자가 회문인지 확인하는 재귀 프로그램

C++에서 숫자가 회문인지 확인하는 재귀 프로그램

WBOY
WBOY앞으로
2023-09-10 13:25:091236검색

C++에서 숫자가 회문인지 확인하는 재귀 프로그램

정수를 입력으로 받습니다. 목표는 재귀를 사용하여 입력 숫자 Num이 회문인지 여부를 확인하는 것입니다.

숫자가 회문인지 확인하려면 숫자를 뒤집어 두 숫자가 같은지 확인하세요. 거꾸로 된 숫자가 원래 숫자와 같으면 회문입니다.

Example

Input− Num = 34212;

Output− 34212는 회문이 아닙니다!

설명− 34212를 거꾸로 하면 21243이 됩니다. 34212 != 21243 따라서 입력한 숫자는 회문이 아닙니다.

Input− Num = 32123;

Output− 32123은 회문입니다!

설명 - 32123을 거꾸로 하면 32132가 됩니다. 32123!= 32123이므로 입력 숫자는 회문입니다.

아래 프로그램에서 사용하는 방법은 다음과 같습니다

이 방법에서는 입력 번호 num1과 임시 번호 num2를 받아들이는 재귀 함수 revrsNum(int num1, int num2)을 사용합니다.

기본 사례 -: num1이 0이면 num2를 반환합니다.

p>

Else-: 재귀를 사용하여 num1의 역순을 계산합니다. 계산의 역수를 반환합니다.

둘 다 동일하면 입력 숫자는 회문입니다.

  • 입력 숫자 Num을 가져옵니다.

    • 입력 숫자 Num을 가져옵니다. p>

    • Take Num2 = revrsNum(Num,0)

    • revrsNum(int num1, int num2) 함수는 num1의 역수 값을 재귀적으로 생성하고 그 역수를 반환합니다.

    • num1이 0이면 역계산 결과는 num2를 반환합니다.

    • 그렇지 않으면 num2에 10을 곱하고 num1%10을 더합니다.

    • num1=num1/10을 사용하여 num1을 10으로 줄입니다.

    • revrsNum(recursive num1, num2);

    • 을 사용하여 결과를 반환합니다.

    • 메인 내부에서 얻은 결과를 인쇄하세요.

    #include <bits/stdc++.h>
    using namespace std;
    int revrsNum(int num1, int num2){
       if (num1 == 0){
          return num2;
       }
       num2 *= 10;
       num2 += (num1 % 10);
       num1 = num1/10;
       return revrsNum(num1, num2);
    }
    int main(){
       int Num = 1345431;
       int Num2 = revrsNum(Num,0);
       if (Num == Num2){
          cout <<Num<<" is Palindrome!";
       }
       else{
          cout <<Num<<" is not a Palindrome!";
       }
       return 0;
    }

    Output

    위 코드를 실행하면 다음과 같은 출력이 생성됩니다

    1345431 is Palindrome!

위 내용은 C++에서 숫자가 회문인지 확인하는 재귀 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제