可以看出这道题其实限制了n的范围就是一定会大于0;
懒得算开数组要开多大 就直接用vector进行存储了 但是后面进行输出的时候要从后往前进行输出 而不是从前往后输出
开始就是因为这个原因有测试点过不去
贴一下ac代码:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> num;
int main()
{
int a,radix;
cin>>a>>radix;
while(a)
{
num.push_back(a%radix);
a/=radix;
}
int flag=1;
for(int i=0,j=num.size()-1;i<num.size()&&j>=0;++i,--j)//判断是否为回文数字
{
if(num[i]!=num[j])
{
flag=0;
break;
}
}
if(flag) puts("Yes");
else puts("No");
flag=1;
reverse(num.begin(),num.end());//这一块我是直接逆置之后从前往后
for(auto&ss:num)
{
if(flag) cout<<ss,flag=0;//处理pat空格问题
else cout<<" "<<ss;
}
return 0;
}