【1019 20 回文串】 General Palindromic Number
传送门
题意
给定数字 \(n\),进制 \(b\) ,求将数字 \(n\) 表示为 \(b\) 进制后是否为回文串
数据范围
\(0\leq n\leq 10^{9}\)
\(0\leq b\leq 10^{9}\)
题解
- 转换之后双指针计算即可
- 不能转化为字符串,\(b\) 过大后的余数不是一个字符有两个测试点过不了
Code
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, b; cin >> n >> b;
vector<int> num;
while (n) {
num.push_back(n % b);
n /= b;
}
bool flag = 1;
for (int i = 0, j = num.size() - 1; i <= j; i++, j--) {
if (num[i] != num[j]) {
flag = 0;
break;
}
}
if (flag) cout << "Yes" << endl;
else cout << "No" << endl;
for (int i = num.size() - 1; i >= 0; i--) {
cout << num[i];
if (i) cout << ' ';
}
}

浙公网安备 33010602011771号