|
|
×
提示!该题解未通过审核,建议分享者本着启发他人,照亮自己的初衷以图文并茂形式完善之,请勿粘贴代码。#include<bits/stdc++.h> using namespace std; typedef long long op; int main() {
freopen("csp2022pj_pow.in","r",stdin);freopen("csp2022pj_pow. 该题解等待再次审核........................................................................(剩余 212 个中英字符)
题目3777 [CSP 2022J]乘方
2025-07-18 19:51:28
|
|
|
#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
|