1 条题解

  • 0
    @ 2026-8-18 11:47:31

    思路

    n < 31,所以 2^30 = 1073741824 在 int 范围内(int 最大约 21.4 亿),直接循环乘 2 即可。从 1 开始乘 n 次。

    代码

    #include <stdio.h>
    
    int main() {
        int n;
        scanf("%d", &n);
    
        int result = 1;
        for (int i = 0; i < n; i++)
            result *= 2;
    
        printf("%d\n", result);
        return 0;
    }
    

    易错点

    • 2^30 刚好在 int 内,但 2^31 就溢出了,所以循环次数千万别多。
    • ^ 在 C 里是异或运算符,不是乘方!不能写 2^n。
    • 1

    信息

    ID
    5
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    1
    已通过
    1
    上传者