1019 General Palindromic Number (20 分)
1019 General Palindromic Number (20 分)
Sample Input 1:
27 2
Sample Output 1:
Yes
1 1 0 1 1
Sample Input 2:
121 5
Sample Output 2:
No
4 4 1
AC代码
#include <iostream>
using namespace std;
int main() {
int N, base;
cin >> N >> base;
if (!N){ cout << "Yes" << endl << "0" << endl; return 0; } //如果输入数为0
int trans[10001];
int pos = 0;
while (N > 0) { trans[pos++] = N % base; N /= base; } //将数字转换成base进制后存储在数组中
int Judge = pos / 2; //pos此时的值恰为数组中数字个数 折中得到Judge作为停止检阅条件
int flag = 1;
for (int i = 0; i < Judge; i++) //不对称
if (trans[i] != trans[pos - i - 1]) { cout << "No" << endl; flag = 0; break; }
if (flag) cout << "Yes" << endl; //对称
flag = 0; //解决末尾多余空格问题
for (int i = pos-1; i >= 0; i--) { //注意倒序输出 因为当时是倒序输入
if (flag) cout << ' '; else flag = 1;
cout << trans[i];
}
return 0;
}