PAT1019 General Palindromic Number
题目:PAT1019
题解:就是先把n转换成d进制,然后看看是不是回文串,最后在输出一下就行了
数组开小了检查好久都没检查出来...郁闷坏了
代码:
1 #include<cstdio> 2 #include<cmath> 3 #include<cstring> 4 using namespace std; 5 6 int n,d,cou,num[100]; 7 8 void tran(int t)//10进制转换d进制 9 { 10 if(t==0) 11 { 12 num[1]=0; 13 cou=1; 14 } 15 else 16 { 17 cou=1; 18 while(t!=0) 19 { 20 num[cou]=t%d; 21 t=t/d; 22 cou++; 23 } 24 cou--; 25 //printf("**%d\n",cou); 26 } 27 28 } 29 30 bool palin() 31 { 32 for(int i=1;i<=cou/2;i++) 33 { 34 if(num[i]!=num[cou-i+1]) return false; 35 } 36 return true; 37 } 38 39 int main() 40 { 41 scanf("%d %d",&n,&d); 42 43 tran(n); 44 45 46 bool f=palin(); 47 48 if(f) printf("Yes\n"); 49 else printf("No\n"); 50 51 for(int i=cou;i>0;i--) 52 { 53 printf("%d",num[i]); 54 if(i!=1) printf(" "); 55 } 56 57 return 0; 58 }
浙公网安备 33010602011771号