Bootstrap

[CSP2022 P8813乘方]最简题解!

题目入口

Solution

利用数据溢出和pow。

也许数据溢出容易WA或RE,但是这道题是完全可以利用数据溢出的。

也不用担心 pow 的速度,不会T掉。

a b a^b ab,超过 1e9 范围就输出-1, int 类型范围是 1e10 。超过 int 类型范围会变成一个负数或0,设 c c c p o w e r power power 后的值,所以我们可以写c>0&&c<=1e9就输出 c c c,否则输出-1

因为数据点太水,你可以只判断c>0

AC Code

记录

可AC但不太保险的做法:

#include<iostream>
#include<cmath>
using namespace std;
int a,b,c;
int main(){
    cin>>a>>b;
    c=pow(a,b);
    cout<<(c>0?c:-1);
    return 0;
}

可以AC又保险做法:

#include<iostream>
#include<cmath>
using namespace std;
int a,b,c;
int main(){
    cin>>a>>b;
    c=pow(a,b);
    cout<<(c>0&&c<=1e9?c:-1);
    return 0;
}

有那么一点点的帮助(洛谷)

有那么一点点的帮助(CSDN)

;