1019 General Palindromic Number (20 分)

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;
}