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