1019. General Palindromic Number (20)

来源:互联网 发布:java 蓝牙通信协议 编辑:程序博客网 时间:2024/06/05 07:34

题目链接:https://www.patest.cn/contests/pat-a-practise/1019


题目大意:给定正整数N和b,判断N的b进制数是不是回文数


解题思路:

  • 函数Ninb(int n,int b),返回值为n的b进制数的逆置,判断此值就可以判断n的b进制数是否是回文数

  • 函数isPalindromic(vector num),用来判断num是否是回文数


代码如下:

#include <iostream>#include <vector>using namespace std;bool isPalindromic(vector<int> num){//判断数num是否是回文数    int mid=(num.size()-1)/2;    for(int i=0;i<=mid;i++){        if(num[i]!=num[num.size()-1-i])            return false;    }    return true;}vector<int> Ninb(int n,int b){//返回值是n的b进制数的逆置    vector<int> res;    if(n==0)        res.push_back(n);    while(n!=0){        res.push_back(n%b);        n=n/b;    }    return res;}int main(int argc, char const *argv[]){    int n,b;    cin>>n>>b;    vector<int> res;    res=Ninb(n,b);    if(isPalindromic(res))        cout<<"Yes"<<endl;    else        cout<<"No"<<endl;    for(int i=res.size()-1;i>=0;i--){        if(i==0)            cout<<res[i]<<endl;        else            cout<<res[i]<<" ";    }    return 0;}
原创粉丝点击