70分求助
2023-10-24 22:06:52
发布于:广东
110阅读
0回复
0点赞
不想抄题解
当然是假的啦
大佬帮帮我
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b,c;
cin>>a>>b;
c=pow(a,b);
if(c>pow(10,9)){
cout<<"-1";
}
else{
cout<<c;
}
return 0;
}
哪里有问题啊
全部评论 8
#include<bits/stdc++.h>
using namespace std;
int main(){
double a,b;
cin >> a >> b;
long long c=pow(a,b);
if(c>1000000000||c<0){
cout << "-1";}else{ cout <<c;
2024-02-01 来自 北京
1如果输出为负数,同样输出-1;
2024-02-01 来自 北京
0另外pow要用double;
2024-02-01 来自 北京
0太棒了
2024-10-21 来自 广东
0
你仔细看一下数据范围,a和b是<=10的9次方,最坏情况会炸的,所以可以把b设小一点,然后一步步扩大,过程发现超过,就输出,退出循环
2024-01-31 来自 江苏
1#include<iostream>
using namespace std;
int main(){
int a,b;
long long sum=1;
cin>>a>>b;
for(int i=0;i<b;i++){
sum=a*sum;
if(sum>1000000000){
cout<<-1;2023-12-20 来自 江苏
0老老实实写for循环吧(悲)
2023-12-20 来自 广东
0高精度就行了(
2023-12-17 来自 北京
0你猜为什么要进csp(doge)肯定是因为他有高精啊((((大大大大大喜
2023-10-26 来自 浙江
0hack:1000000000 1000000000
2023-10-26 来自 四川
0你开longlong也会炸,手写个循环幂次方。
2023-10-26 来自 四川
0
有帮助,赞一个