Computer >> Máy Tính >  >> Lập trình >> C ++

Double Base Palindrome trong chương trình C ++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình để kiểm tra xem số đã cho có phải là palindrome trong hai hệ thống số hay không.

Chúng tôi đã đưa ra một số và một cơ sở cho một hệ thống số khác. Chúng ta phải kiểm tra xem số đã cho có phải là palindrome trong hệ thống số thập phân và hệ thống số đã cho hay không.

Hãy xem các bước để giải quyết vấn đề.

  • Khởi tạo số và cơ sở hệ thống số.

  • Kiểm tra xem số đã cho có phải là palindrome trong hệ thống số thập phân hay không.

  • Chuyển đổi số thành một hệ thống số khác ở định dạng chuỗi.

  • Kiểm tra xem số được chuyển đổi có phải là palindrome hay không.

  • Nếu số đã cho là số palindrome trong cả hai hệ thống số, thì in khác Không .

Ví dụ

Hãy xem mã.

#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;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

Yes

Kết luận

Nếu bạn có bất kỳ câu hỏi nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.