1 条题解

  • 0
    @ 2025-10-8 16:54:09
    #include <bits/stdc++.h>
    using namespace std;
    int a[20];
    bool pd(int x, int w)
    {  
        memset(a, 0, sizeof(a)); 
        int len = 0; while (x > 0) a[++len] = x % w, x /= w;
        for (int i = 1; i <= len / 2; i++) if (a[i] != a[len - i + 1]) return 0;
        return 1;   
    }
    int main()
    {
        int n, s; scanf("%d%d", &n, &s);
        int ans = 0; 
        for (int i = s + 1; ans < n; i++)
        {
            int t = 0; // 满足的进制数
            for (int j = 2; j <= 10; j++) // 枚举进制
            {
                if (pd(i, j)) t++; // 判断十进制i转j进制后是否回文
                if (t >= 2)
                {
                    ans++;
                    printf("%d\n", i);
                    break;
                }
            }
        }
        return 0;
    }
    
    • 1

    *【进制转换】[USACO1.2] 双重回文数 Dual Palindromes

    信息

    ID
    834
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    152
    已通过
    56
    上传者