CSP-J 2022 A题 乘方 题解

· · 个人记录

这道题非常的基础。我觉得快速幂什么的都没有必要。

【题意解释】

对于两个正整数 a,b ,若 a^b>10^9 ,输出-1;否则输出 a^b 的值。

【题目分析】

考场上从8:34发密码到做出来这道题只花了6分钟。(包括读题,调试等)

有一些人说不能用pow(说会有精度误差),我觉得没有担心的必要,直接用就完事了,特判1^{10^9}也免了。

至于超出long long范围也好解决——因为如果运算时超出了数据范围,会返回一个负数,所以只需要判断是否为负数以及是否 > 10^9 即可。

【代码展示】

这是我考场时的代码(一点都没改)。

自测与真实成绩均AC

//pow
#include<bits/stdc++.h>
using namespace std;
const long long maxn = 1000000000;
long long a,b,ans; 
int main()
{
    ios::sync_with_stdio(false),cin.tie();
    freopen("pow.in","r",stdin);
    freopen("pow.out","w",stdout);
    cin>>a>>b;
    ans=pow(a,b);
    if(ans>maxn||ans<0)
        cout<<-1;
    else
        cout<<ans;
    return 0;
}
//8:40 

终于有机会写题解了,这是我第一篇正式发布的题解,也算是让可能即将要AFO的我的最后期盼吧。谢谢!