[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

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
双非一本失业第二年:《机器视觉垃圾分类》
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务