给出一个十进制数N和b,你要把十进制N转换为b进制,并判断转换后的N是否是回文数,如果是,输出Yes,否则输出No。
正确代码:
#include<cstdio>
#include<vector>
using namespace std;
int main(){
int N,D;
scanf("%d%d",&N,&D);
vector<int> vec;
while(1){
if(N==0)
break;
vec.push_back(N%D);
N=N/D;
}
bool flag=true;;
for(int i=0;i<vec.size();i++){
if(vec[i]!=vec[vec.size()-i-1])
flag=false;
}
if(flag==true){
printf("Yes\n");
for(int i=vec.size()-1;i>=0;i--){
if(i!=vec.size()-1)
printf(" ");
printf("%d",vec[i]);
}
}
else{
printf("No\n");
for(int i=vec.size()-1;i>=0;i--){
if(i!=vec.size()-1)
printf(" ");
printf("%d",vec[i]);
}
}
return 0;
}