Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Double Base Palindrome ในโปรแกรม 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น