JAVA的输入只有字符(包括数字),不可能输入对数的
网站设计、网站制作,成都做网站公司-创新互联已向上千多家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。
它只可能计算对数,另外,JAVA的数学库只有实数,没有复数函数的。这个你要自己用算法实现
PS:你的le是什么?对数应该是log或ln啊
好像计算器没有这个功能,可以求任何非零值为底的对数,只有以e为底和以10为底的,它们都可调用Math.log(a)或Math.log10(a),也可以调用StrictMath.log(a)或StrictMath.log10(a)。
在java.lang.math类中的log(doublea)代表以e为底的a的对数,因此log2N在Java中的表示为:log((double)N)/log((double)2)。
public class Demo {
public static void main(String[] args) {
System.out.println(log(100, 10));
}
/**
* 对数运算
* @Date 2015-10-8,下午2:24:12
* @author hw
* @param value
* @param base 底数
* @return double
*/
public static double log(double value, double base) {
return Math.log(value) / Math.log(base);
}
}
Math.log(x)
double x = Math.log(5);
等价于:x = ln 5 或 x = loge5,即以e为底的自然对数。
假如你想使用Java来计算机对数,算底不同的对数又该如何做呢?很遗憾,我们还没有办法计算以10为底或以2为底的对数。但是它们却是在计算Java对数时用的最多的。要想解决这个问题,需要使用数学和对数方程:
logx(y) =loge(x) / loge(y),换底公式
这只需一段简单的Java程序来实现对数的运算:
package com.generationjava.math;
public class Logarithm {
static public double log(double value, double base) {
return Math.log(value) / Math.log(base);
}
}
使用Java对数函数计算100的以10为底的对数就变为非常简单了:
double log = Logarithm.log(100, 10); // log is 2.0
512的以2为底的对数是:
double log = Logarithm.log(512, 2); // log is 9.0
下面的两个简单的Java对数运算方法也都是很有用的:
static public double log2(double value) {
return log(value, 2.0);
}
static public double log10(double value) {
return log(value, 10.0);
Scanner in = new Scanner(System.in);
String data;
int input = 0;
while ((data = in.next()) != null) {
input = Integer.parseInt(data);
if (input 0) {
System.out.print(Math.exp(-input));
} else if (input == 0) {
System.out.println(1);
} else if (input 0) {
System.out.print(Math.expm1(input) * -1);
}
}
直接把上面的代码放到 main函数中就行。
本地测试结果: