此题不难,但是巨坑!
1.题目:不超过 10的9次方!不超过!判断用>不是>=!
2.不能直接
long long a,b,c;
c=pow(a,b);
if(c>=pow(10,9)) cout<<-1;
else cout<<c;
否则...c会溢出longlong,变为负数!
要变一变:
long long a,b,c
c=pow(a,b);
if(pow(a,b)>=pow(10,9)) cout<<-1;
else cout<<c;
这样就可以了。AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b,c;
cin>>a>>b;
c=pow(a,b);
if(pow(a,b)>pow(10,9)) cout<<-1;
else cout<<c;
return 0;
}