[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

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-30 19:49
起名星人:蛮离谱的,直接要求转投销售
投递汇川技术等公司10个岗位
点赞 评论 收藏
分享
吃不饱的肱二头肌很想退休:tnnd 我以为选妹子呢,亏我兴高采烈的冲进来😠
投递快手等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务