您的位置:首页 > 编程语言 > C语言/C++

1019. General Palindromic Number (20)

2017-08-01 20:20 246 查看
题目链接: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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  回文数 进制转换 c++