USACO 1.2 Dual Palindromes

跟上一个题基本差不多,题目是不是有歧义啊。。。这个题的意思是2-10进制中至少在两个进制上是回文的,理解错了题意挂了一次。。。

 1 /*
 2 ID: cuizhe
 3 LANG: C++
 4 TASK: dualpal
 5 */
 6 #include <iostream>
 7 #include <cstdio>
 8 #include <cstring>
 9 #include <cstdlib>
10 #include <map>
11 using namespace std;
12 int judge(int x,int n)
13 {
14     int p[30],i,num;
15     num = 1;
16     while(x > 0)
17     {
18         p[num++] = x%n;
19         x /= n;
20     }
21     for(i = 1; i <= num/2; i ++)
22     {
23         if(p[i] != p[num-i])
24             break;
25     }
26     if(i == num/2+1)
27         return 1;
28     else
29         return 0;
30 }
31 int main()
32 {
33     int i,n,s,j,k;
34     freopen("dualpal.in","r",stdin);
35     freopen("dualpal.out","w",stdout);
36     scanf("%d%d",&n,&s);
37     j = 1;
38     for(i = s+1; j <= n; i ++)
39     {
40         int num = 0;
41         for(k = 2; k <= 10; k ++)
42         {
43             if(judge(i,k))
44             {
45                 num ++;
46             }
47         }
48         if(num >= 2)
49         {
50             printf("%d\n",i);
51             j ++;
52         }
53     }
54     return 0;
55 }
posted @ 2012-10-22 19:36  Naix_x  阅读(111)  评论(0编辑  收藏  举报