题目描述
判断a的b次幂是否大于1e+9
如果大于则输出-1
否则将a的b次幂输出
输入样例
10 9
输出样例
1000000000
算法1
(对数比较) $O(1)$
在$a^b$<= $10^9$ 则在x>=1的底数的对数比较中,
即log($a^b$)<=log($10^9$)
这里可以节省空间将底选为10,就不用将a,b设为long long型
C++ 代码
#include <iostream>
#include<cmath>
using namespace std;
int a,b;//不要用long long
int main(){
cin>>a>>b;
int t=1e+9;
if(b*log(a)<=log(t)){//直接以10为底
cout<<(int)pow(a,b);//这里要转换一下,因为测试数据原因
}else cout<<-1;
return 0;
}