#include<bits/stdc++.h> using namespace std; int t; int a,b,c; int main() { freopen("csp2022pj_pow.in","r",stdin); freopen("csp2022pj_pow.out","w",stdout); cin>>a>>b; c=(pow(a,b)); if(c<0) { cout<<-1; } else { cout<<c; } cout<<endl; return 0;
题目3777 [CSP 2022J]乘方
AAAAAAAAAA
3
1 条 评论
2022-11-12 20:09:18
|
|
这题我在考试的时候是100,为什么在这只有40 这题不难,但是容易陷入思维陷阱中。就是说,c++中的<cmath>头文件有直接算出乘方的 pow 函数,但是很明显在这里不能直接用。这里的结果很可能会超过10^18,就会输出乱码。因此我们可以定义一个函数panduan,返回值是long long(结果小于等于10^9),里面是a和b,也是long long.代码如下:
#define ll long long ll panduan(ll a,ll b){ ll ans=1; for(ll i=1;i<=b;i++){ ans=ans*a; if(ans>1000000000) return -1; } return ans; }然后就可以了,完整代码交给读者自行锻炼
题目3777 [CSP 2022J]乘方
2
1 条 评论
2022-11-04 11:34:42
|