本题一遍过...20分的题好像相对来说是比较简单的。本题主要涉及进制转换和回文判断。
1 #include<iostream> 2 #include<vector> 3 #include<cstdio> 4 using namespace std; 5 int main(){ 6 int n,b; 7 cin>>n>>b; 8 int digit[10000]={0}; 9 int len=0; 10 while(n!=0){//十进制转换为base进制 11 digit[len++]=n%b; 12 n=n/b; 13 } 14 int lo=0,hi=len; 15 int flag=1; 16 while(lo<hi){ 17 if(digit[lo]!=digit[hi-1]) 18 {flag=0; 19 break; 20 } 21 lo++; 22 hi--; 23 } 24 if(flag) 25 cout<<"Yes"<<endl; 26 else 27 cout<<"No"<<endl; 28 for(int i=len-1;i>=0;i--){ 29 if(i==0) 30 cout<<digit[i]; 31 else 32 cout<<digit[i]<<" "; 33 } 34 return 0; 35 }