超级简单
2024-04-20 12:37:40
发布于:广东
16阅读
0回复
0点赞
这道题非常简单。
主体思路就是先输入两个变量a和b,然后算a的b次幂,看有没有超过1e9,超过输出-1,否则输出a的b次幂。
#include <iostream>
using namespace std;
int a,b;
int main () {
cin>>a>>b;
return 0;
}
先输入a和b。
long long cnt=1;
for(int i=1;i<=b;i++){
cnt*=a;
if(cnt>1000000000){
cout<<"-1";
return 0;
}
}
cout<<cnt;
然后定义一个变量cnt,for循环b次,每一次*=a,后面再加一个判断,有没有超过1e9。我们之所以要在循环内进行判断,是因为a的b次幂可能超过2的63次幂-1,也就是超过了long long的上线。
你们最喜欢的AC代码:
#include <iostream>
using namespace std;
int a,b;
int main () {
cin>>a>>b;
long long cnt=1;
for(int i=1;i<=b;i++){
cnt*=a;
if(cnt>1000000000){
cout<<"-1";
return 0;
}
}
cout<<cnt;
return 0;
}
点个赞吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
全部评论 1
写的太好了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2024-04-20 来自 广东
0
有帮助,赞一个