1 条题解

  • 0
    @ 2025-11-29 12:35:42

    C :

    #include <stdio.h>
    #include "math.h"
    int main() {
        // 四次方是六位数的数取值范围是,17-31
        // 三次方是四位数的数取值范围是,10-21
        // 取二者的交集,17-21
        int i;
        for (i = 17; i <= 21; i++) {
            // 用一个数组,全部初始化为-1,将四位数和六位数拆解后,数组中没有-1,说明数组中十个位置正好一位一个数
            int a[10] = {0};
            int j = 0;
            int m = 0;
            for ( m = 0; m < 10; m++) {
                a[m] = -1;
            }
            
            // 计算立方,拆解
            int k = pow(i, 3);
            while (k) {
                a[j++] = k % 10;
                k = k / 10;
            }
            
            // 计算四次方拆解
            k = pow(i, 4);
            while (k) {
                a[j++] = k % 10;
                k = k / 10;
            }
     
            // 判断是否有-1,如果有-1立刻退出
            int t;
            for (t = 0; t < 10; t++) {
                if (a[t] == -1) {
                    break;
                }
            }
            // 如果t==10,则说明判断-1时没有中间退出,即没有-1
            if (t == 10) {
                break;
            }
        }
        printf("age=%d\n", i);
        return 0;
    }
    
    • 1

    信息

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