2 条题解

  • 0
    @ 2026-10-3 19:57:13

    CSP-J 2022 乘方 题解

    题目大意

    给定正整数 (a,b),计算 (a^b)。 若 (a^b ≤ 10^9),输出 (a^b);否则输出 -1。 数据范围:(1 ≤ a,b ≤ 10^9)。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int main () {
        int a, b;
        cin >> a >> b;
        if (pow(a, b) > 1e9) cout << -1;
        else printf("%.0lf", pow(a, b));
        return 0;
    }
    

    代码思路说明

    1. 读入两个整数 (a,b);
    2. 使用 pow() 函数计算 (a^b),pow 返回浮点数;
    3. 判断结果是否大于 (10^9):
      • 如果大于:输出 -1;
      • 如果不大于:用 printf("%.0lf") 将浮点数保留 0 位小数,输出整数结果。

    样例演示

    样例 1:输入 10 9 pow(10,9)=1000000000,不大于 (10^9),输出 1000000000。

    样例 2:输入 23333 66666 pow(23333,66666) 结果远大于 (10^9),输出 -1。

    信息

    ID
    609
    时间
    500ms
    内存
    128MiB
    难度
    入门
    标签
    递交数
    42
    通过
    10
    上传者