이 튜토리얼에서는 주어진 숫자가 두 개의 숫자 체계에서 회문인지 확인하는 프로그램을 작성할 것입니다.
우리는 다른 숫자 체계를 위한 숫자와 기초를 주었습니다. 주어진 숫자가 십진수 체계와 주어진 숫자 체계에서 회문인지 확인해야 합니다.
문제를 해결하는 단계를 살펴보겠습니다.
-
숫자와 숫자 체계 기반을 초기화합니다.
-
주어진 숫자가 십진수 체계에서 회문인지 확인하십시오.
-
숫자를 문자열 형식의 다른 숫자 체계로 변환합니다.
-
변환된 숫자가 회문인지 확인하세요.
-
주어진 숫자가 두 숫자 체계 모두에서 회문이면 예를 인쇄하십시오. 그렇지 않으면 아니요 .
예시
코드를 봅시다.
#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
결론
튜토리얼에서 질문이 있는 경우 댓글 섹션에 언급하세요.