前言
正文
思路
题目意思就是判断将十进制数N转换为b进制数后是否为回文数 ,按部就班即可
参考题解
#include<iostream>
#include<vector>
using namespace std;
/*
题目意思就是判断将十进制数N转换为b进制数后是否为回文数 ,需要注意的是输出的时候记得逆序输出,
因为数组低位存的是b进制数的低位,也可以使用algorithm头文件中的reverse()函数,直接reverse(v.begin(),v.end())将vector进行倒置再顺序输出
*/
bool check(vector<int> arr,int len){
for(int i=0;i<=len/2;i++){
if(arr[i]!=arr[len-1-i]){
return false;
}
}
return true;
}
int main(){
int N,b,len;
vector <int> v;
cin>>N>>b;
//将十进制数N转换为b进制数 ,除基取余法
do{
int temp=N%b;
v.push_back(temp);
N/=b;
}while(N!=0);
len=v.size();
//判定
if(check(v,len))cout<<"Yes"<<endl;
else cout<<"No"<<endl;
//逆序输出
for(int i=len-1;i>=0;i--){
if(i==len-1)cout<<v[i];
else cout<<" "<<v[i];
}
cout<<endl;
return 0;
}