General Palindromic Number
判断进制转化后的数字是否回文数
解答:
#include<iostream>
using namespace std;
long N,b;
int a[1000];
int len=0;
bool check(){
for(int i=0,l=len/2;i<l;i++){
if(a[i]!=a[len-i-1]) return false;
}
return true;
}
int main(){
cin>>N>>b;
if(N>0){
while(N>0){
a[len++]=N%b;
N/=b;
}
printf(check()?"Yes\n":"No\n");
}else printf("Yes\n0");
printf("%d",a[len-1]);
for(int i=len-2;i>=0;i--) printf(" %d",a[i]);
return 0;
}
1.注意N,b要用long类型保存
2.注意判断是否回文的循环,i遍历到l/2就要停止
for(int i=0,l=len/2;i<l;i++){
if(a[i]!=a[len-i-1]) return false;
}
return true;
3.从后往前输出