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
結論
如果您對本教程有任何疑問,請在評論部分中提及它們。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP