[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

全部评论

相关推荐

大摆哥:刚好要做个聊天软件,直接让你帮他干活了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务