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 }

 

你可能感兴趣的:(USACO)