总所周知,我们在高中学过对数函数,记作y=logax。下面是百度百科关于对数函数的描述:
在C++/C语言中,对数函数y = lnx的表示方法为y = log(x),函数的完整原型为:double log(double x);
例如:
#include<cstdio> #include<algorithm> #include<cmath> using namespace std; int main() { printf("%f\n",log(10)); return 0; }输出:
在C++/C语言中,对数函数y = lgx(以10为底的对数函数)的表示方法为y = log10(x),函数的完整原型为:double log10(double x);
例如:
#include<cstdio> #include<algorithm> #include<cmath> using namespace std; int main() { printf("%f\n",log10(10)); return 0; }输出:
否则在题目提交时会报错(PE)
那么又会有问题,我们要怎么样求常规对数,即logab(以a为底,b为真数)的值呢?
这个其实也很简单,一个换底公式就解决了
公式描述:
因此我们可以将其转换成两个以自然对数为底或者是以10为底的数的商
例如:我们要求解log(2)8的值,则有:
#include<cstdio> #include<algorithm> #include<cmath> using namespace std; int main() { printf("%f\n",log(8)/log(2)); return 0; }输出:
如有错误之处,还请指正,O(∩_∩)O谢谢