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 }