1019 General Palindromic Number

备注:arr数组里是从低位到高位的数字。所以输出得从后到前。十进制转b进制也是取余。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <bits/stdc++.h>
using namespace std;

int main() {
int n, b;
scanf("%d %d", &n, &b);
int arr[100] = {0}, len = 0;
while (n) {
arr[len++] = n % b;
n /= b;
}
bool flag = true;
for (int i = 0; i < len / 2; i++) {
if (arr[i] != arr[len - 1 - i]) {
printf("No\n");
flag = false;
break;
}
}
if (flag) printf("Yes\n");
for (int i = len - 1; i >= 0; i--) {
printf("%d", arr[i]);
if (i) printf(" ");
}

return 0;
}


27 2
Yes
1 1 0 1 1