输入样例1
2.0 16.0
输出样例1
4.00000
输入样例2
3.0 16.0
输出样例2
2.52371901428
输入样例3
3.14 1.093205
输出样例3
0.077881465739048
这道题是一道公式运算的题,对于没学对数的人非常不友好
所以,我们要在题目里找线索
在最后,题目给了我们c++求对数的函数(log 2())
也给了求以a为底b的值
so,我们可以根据提示做题:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;double ans=0.0;
cin>>a>>b;
ans=log2(b)/log2(a);
printf("%.15f",ans);
return 0;
}
拿不到满分!
为什么呢?
int的数据范围为2的31次方
而满分代码要10的15次方还要浮点数!!!!
所以满分代码为
#include<bits/stdc++.h>
using namespace std;
int main(){
double a,b,ans=0.0;
cin>>a>>b;
ans=log2(b)/log2(a);
printf("%.15f",ans);
return 0;
}
做题要仔细看并认真做,最后希望大家学有所成!!!
记得点赞!!!