坑点:边界数据0 2输出Yes 0
因此把进制转换部分改成
do{
a[i]=m%n;
m=m/n;
i++;
}while(m!=0);
更优
#include<iostream>
using namespace std;
int a[100];
bool judge(int a[],int i){
for(int j=0;j<=i/2;j++){
if(a[j]!=a[i-1-j]){
return false;
}
}
return true;
}
int main(){
int m,n;
int i=0;
bool flag;
cin>>m>>n;
if(m==0) i=1;//坑点
while(m>0){
a[i]=m%n;
m=m/n;
i++;
}
flag=judge(a,i);
if(flag)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
for(int j=i-1;j>=0;j--){
cout<<a[j];
if(j!=0) cout<<" ";
}
}
本文介绍了一个使用C++实现的程序,该程序能够将一个整数从十进制转换为另一个指定进制,并判断转换后的数是否为回文数。通过对输入的整数进行转换,并使用一个辅助函数来检查转换后的数是否具有回文特性,最终输出转换结果及判断结论。
1711

被折叠的 条评论
为什么被折叠?



