Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ 프로그램의 이중 기본 회문

<시간/>

이 튜토리얼에서는 주어진 숫자가 두 개의 숫자 체계에서 회문인지 확인하는 프로그램을 작성할 것입니다.

우리는 다른 숫자 체계를 위한 숫자와 기초를 주었습니다. 주어진 숫자가 십진수 체계와 주어진 숫자 체계에서 회문인지 확인해야 합니다.

문제를 해결하는 단계를 살펴보겠습니다.

  • 숫자와 숫자 체계 기반을 초기화합니다.

  • 주어진 숫자가 십진수 체계에서 회문인지 확인하십시오.

  • 숫자를 문자열 형식의 다른 숫자 체계로 변환합니다.

  • 변환된 숫자가 회문인지 확인하세요.

  • 주어진 숫자가 두 숫자 체계 모두에서 회문이면 를 인쇄하십시오. 그렇지 않으면 아니요 .

예시

코드를 봅시다.

#include <bits/stdc++.h>
using namespace std;
string integer_to_string(int n, int base) {
   string str;
   while (n > 0) {
      int digit = n % base;
      n /= base;
      str.push_back(digit + '0');
   }
   return str;
}
string isDoubleBasePalidrome(int n, int k) {
   int temp = n;
   int number_reverse = 0;
   while (temp > 0) {
      number_reverse = temp % 10 + number_reverse * 10;
      temp /= 10;
   }
   if (number_reverse == n) {
      // converting to base k
      string str = integer_to_string(n, k);
      string str_copy = str;
      // reversing number in base k
      reverse(str.begin(), str.end());
      if (str == str_copy) {
         return "Yes";
      }
   }
   return "No";
}
int main() {
   int n = 313, k = 2;
   cout << isDoubleBasePalidrome(n, k) << endl;
   return 0;
}

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Yes

결론

튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.