給定十進制非負整數 N(≤10⁹)與進制 b(2~10⁹),判斷 N 的 b 進制表示是否為回文。輸出 Yes/No 及 b 進制數字(空格分隔,高位在前)。
v[i] == v[len-1-i]。#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false); cin.tie(0);
long long N, b; cin >> N >> b;
vector digits;
if (N == 0) digits.push_back(0);
else {
while (N) { digits.push_back(N % b); N /= b; }
}
bool ok = true;
for (int i = 0, j = digits.size()-1; i < j; ++i, --j)
if (digits[i] != digits[j]) { ok = false; break; }
cout << (ok ? "Yes" : "No") << '\n';
for (int i = digits.size()-1; i >= 0; --i) {
if (i != digits.size()-1) cout << ' ';
cout << digits[i];
}
cout << '\n';
return 0;
}
N=27, b=2 → 11011 → Yes N=121, b=10 → 121 → Yes N=123, b=10 → 123 → No
0,是回文。10),不需字母。