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 }

 

posted on 2017-03-06 21:08  RocSAMA  阅读(102)  评论(0)    收藏  举报