题目大意
给出两个整数a和b,问十进制的a在b进制下是否为回文数。是的话输出Yes,不是输出No。并且输出a在b进制下的表示,以空格隔开。思路解析
此回文数并非字符意义上的“对称数”,题目说了是ai = ak-i,我犯迷糊以为是字符相等,送分题都没拿到……真他娘的心累……示例代码
#include<iostream>
#include<string>
using namespace std;
int main() {
int n, b;
scanf("%d%d", &n, &b);
int arr[40];
int index = 0;
while (n != 0) {
arr[index++] = n%b;
n = n / b;
}
bool flag = true;
int i = 0,j = index - 1;
while (i <= j) {
if (arr[i] != arr[j]) {
flag = false;
break;
}
i++;j--;
}
if (flag) {
printf("Yes\n");
}
else {
printf("No\n");
}
if (index == 0) {
printf("No\n");
printf("0");
}
else {
for (int i = index - 1; i >= 0; i--) {
printf("%d", arr[i]);
if (i != 0) printf(" ");
}
}
return 0;
}