[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