ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ตรวจสอบว่าตัวเลขที่ระบุนั้นเป็นพาลินโดรมในระบบตัวเลขสองระบบหรือไม่
เราได้ให้ตัวเลขและฐานสำหรับระบบตัวเลขอื่น เราต้องตรวจสอบว่าตัวเลขที่กำหนดเป็นพาลินโดรมในระบบเลขฐานสิบและระบบตัวเลขที่กำหนดหรือไม่
มาดูขั้นตอนการแก้ปัญหากัน
-
เริ่มต้นฐานระบบตัวเลขและตัวเลข
-
ตรวจสอบว่าตัวเลขที่กำหนดเป็นพาลินโดรมในระบบเลขฐานสิบหรือไม่
-
แปลงตัวเลขเป็นระบบตัวเลขอื่นในรูปแบบสตริง
-
ตรวจสอบว่าตัวเลขที่แปลงเป็นพาลินโดรมหรือไม่
-
หากตัวเลขที่กำหนดเป็นพาลินโดรมในระบบตัวเลขทั้งสองระบบ ให้พิมพ์ ใช่ อย่างอื่น ไม่ .
ตัวอย่าง
มาดูโค้ดกันเลย
#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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น