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 }

你可能感兴趣的:(USACO)