public static void main(String[]args){
double e=1.0;
int i;
for(i=1;e>=0.00001;i++){
int k=1;
for(int j=1;j<=i;j++){
k=k*j;
}
e=e+(1/k);
}
System.out.print("e的近似值:"+e);
}
}
麻烦大家帮我看看吧.
6 个解决方案
#1
e=e+(1/k); 改成 e = e + (1.0 / k); 再试试看呢
#2
应该还有问题,我重写一个吧。
#3
e=e+(1/k);
按照你的定义 该表达式就是e=e+0;
因为1除以同样为整型的k结果肯定是0了.把k定义为double型再试试.
祝你成功.
按照你的定义 该表达式就是e=e+0;
因为1除以同样为整型的k结果肯定是0了.把k定义为double型再试试.
祝你成功.
#4
public class TestE {
public static void main(String[] args) {
double e = 1;
double f = 1;
int k = 1;
double delta = 1E-10; // 如果需要最高精度可以把值改为 0
while(f > delta) {
f /= k++;
e += f;
}
System.out.println("我们算出来的 e: " + e);
System.out.println("类库中的常量 e: " + Math.E);
}
}
#5
不懂,我是来转分的#17
#6
呵呵 谢谢大家帮忙了.
#1
e=e+(1/k); 改成 e = e + (1.0 / k); 再试试看呢
#2
应该还有问题,我重写一个吧。
#3
e=e+(1/k);
按照你的定义 该表达式就是e=e+0;
因为1除以同样为整型的k结果肯定是0了.把k定义为double型再试试.
祝你成功.
按照你的定义 该表达式就是e=e+0;
因为1除以同样为整型的k结果肯定是0了.把k定义为double型再试试.
祝你成功.
#4
public class TestE {
public static void main(String[] args) {
double e = 1;
double f = 1;
int k = 1;
double delta = 1E-10; // 如果需要最高精度可以把值改为 0
while(f > delta) {
f /= k++;
e += f;
}
System.out.println("我们算出来的 e: " + e);
System.out.println("类库中的常量 e: " + Math.E);
}
}
#5
不懂,我是来转分的#17
#6
呵呵 谢谢大家帮忙了.