1 条题解

  • 0
    @ 2026-9-30 12:45:37

    C++ :

    
    #include <cstdio>
    /* 输出 1..n 中「首位数字为偶数」的回文数,一行一个(样例显示是一行空格分隔,
       这里按样例:一行内用空格分隔 —— 但样例输出 '2 4 6 8 22 44 66 88 202 212 222'
       是一个数字串,说明是同一行空格分隔。 */
    static int dig[16];
    int main(){
        int n; if(scanf("%d", &n) != 1) return 0;
        int first = 1;
        for(int x = 1; x <= n; x++){
            int L = 0, t = x;
            while(t){ dig[L++] = t % 10; t /= 10; }
            int ok = 1;
            for(int i=0, j=L-1; i<j; i++, j--) if(dig[i] != dig[j]){ ok = 0; break; }
            if(!ok) continue;
            if(dig[L-1] % 2) continue;      /* 首位必须是偶数 */
            if(!first) putchar(' ');
            printf("%d", x);
            first = 0;
        }
        putchar('\n');
        return 0;
    }
    
    
    • 1

    信息

    ID
    2706
    时间
    1000ms
    内存
    256MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者