[PAT解题报告] General Palindromic Number
给定一个数n和一个b,问n在b进制下是否是回文数。
分析:
没什么好说的——就是用n不断地除以b,把结果放到数组里,然后判断回文就行了。输出结果地时候别忘记倒序。还有输入为0的时候,输出也是0。
代码:
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
using namespace std;
bool is(vector<int> &a) {
for (int i = 0, j = a.size() - 1; i < j; ++i, --j) {
if (a[i] != a[j]) {
return false;
}
}
return true;
}
int main() {
int n,b;
vector<int> a;
scanf("%d%d",&n,&b);
do {
a.push_back(n % b);
n /= b;
} while (n);
puts(is(a)?"Yes":"No");
for (int i = a.size() - 1; i >= 0; --i) {
if (i < a.size() - 1) {
putchar(' ');
}
printf("%d",a[i]);
}
puts("");
return 0;
}
原题链接: http://www.patest.cn/contests/pat-a-practise/1019
查看14道真题和解析