USACO 1.2 Palindromic Squares

   水题,做完回家。难得1Y。

 1 /*
 2 ID: cuizhe
 3 LANG: C++
 4 TASK: palsquare
 5 */
 6 #include <iostream>
 7 #include <cstdio>
 8 #include <cstring>
 9 #include <cstdlib>
10 #include <map>
11 using namespace std;
12 int n;
13 int judge(int x)
14 {
15     int p[30],i,num;
16     num = 1;
17     while(x > 0)
18     {
19         p[num++] = x%n;
20         x /= n;
21     }
22     for(i = 1;i <= num/2;i ++)
23     {
24         if(p[i] != p[num-i])
25         break;
26     }
27     if(i == num/2+1)
28     return 1;
29     else
30     return 0;
31 }
32 void fun(int x)
33 {
34     int p[30],i,num;
35     num = 1;
36     while(x > 0)
37     {
38         p[num++] = x%n;
39         x /= n;
40     }
41     for(i = num-1;i >= 1;i --)
42     {
43         if(p[i] >= 10)
44         printf("%c",'A'+p[i]-10);
45         else
46         printf("%d",p[i]);
47     }
48     return ;
49 }
50 int main()
51 {
52     int i;
53     freopen("palsquare.in","r",stdin);
54     freopen("palsquare.out","w",stdout);
55     scanf("%d",&n);
56     for(i = 1;i <= 300;i ++)
57     {
58         if(judge(i*i))
59         {
60             fun(i);
61             printf(" ");
62             fun(i*i);
63             printf("\n");
64         }
65     }
66     return 0;
67 }

 

posted @ 2012-10-22 09:22  Naix_x  阅读(127)  评论(0编辑  收藏  举报