前言
今年没考好,估分 100+60+0+10=170pts ,大概能混个2=,没什么用。这下好了,期中也砸了,已经排到全校 30 开外了,果然鱼和熊掌不可兼得,况且我双双落空,接下来怕是想搞也搞不了了,写完这篇,卷 whk 去。
语文 | 数学 | 英语 | 物理 | 化学 | 历史 | 政治 | total |
---|---|---|---|---|---|---|---|
108 | 145 | 139 | 58 | 80 | 97 | 78 | 705 |
正文
T1 乘方
\(~~~~~~~~\)简化题意:给出两个正整数 \(a,b(a,b \leqslant 10^9)\) ,检查 \(a^b(a^b\leqslant10^{18})\) 是否超出 int 类型,即 \(10^9\) 或 \(2^{31}-1\) ,超过则输出 -1,否则输出该值。
乱搞
乍一看,不知道是不是有人跟我一样,想到 pow 函数。(可能你们都第一时间放弃这个想法)
于是乎我立马把程序打了出来,当然,还需考虑一下 pow 溢出出现负数的情况。(但后来 tx 说难道不会负负得正吗,我想都溢出了还会继续调用函数计算吗,eee)
#include<bits/stdc++.h>
using namespace std;
const long long inf=1e9;
long long a,b,ans;
int main()
{
//freopen("pow.in","r",stdin);
//freopen("pow.out","w",stdout);
cin>>a>>b;
ans=pow(a,b);
if(ans>inf || ans<0) cout<<-1;
else cout<<ans;
return 0;
}
后来洛谷和小图灵实测都是 AC ,我也很恍惚,有人说要特判 \(a=1\) 的情况,但我的代码也没超时,有点玄学。
标签:10,freopen,pow,long,2022,ans,CSP From: https://www.cnblogs.com/ZhangWenjie08/p/16861601.html