A-1019 General Palindromic Number (20分)
Sample Input 1:
27 2
Sample Output 1:
Yes
1 1 0 1 1
Sample Input 2:
121 5
Sample Output 2:
No
4 4 1
#include <iostream>
using namespace std;
int main(){
int a,b,n,m,i=0,j=0;
int w[100]={};
bool x;
cin >> a >> n;
b=a;
if(b<n){//如果转换后只有一位,则直接输出
cout<<"Yes"<<endl<<b;
return 0;
}
for(;b>0;i++){
w[i]=b%n;
b/=n;
}
m=i;
j=i-1;
i=0;
while(i<j){//对w数组两头的数逐一比较
if(w[i]==w[j]){//如果两边元素相等则继续循环
x=true;
i++;
j--;
}else {//否则标记为失败,退出循环
x=false;
break;
}
}
if(x==true)cout<<"Yes"<<endl;//先判断正确或错误
else cout<<"No"<<endl;
for(i=m-1;i>=0;i--){//将数组中的数从后往前输出
cout << w[i];
if(i>0)cout<<' ';
}
return 0;
}