有关计算数学常数e的一个问题?
class E{
static int tt(int k){
if(k==0 || k==1)
return 1;
else
return k*tt(k-1);
}
}
public class F{
public static void main(String args[]){
int i=10;
if(args.length> 0)
i=Integer.parseInt(args[0]);
int j;
double sum=1.0;
double s;
E e=new E();
for (j=1;j <=i;j++){
s=1/e.tt(j);
sum=sum+s;
}
System.out.print(sum);
}
}
为什么调试出来值总是2.0 ?
我把i的值改成其它数,调试出来还是2.0,郁闷.......
------解决方案--------------------你的逻辑本来就是这样的,当tt方法恒返回大于1的整数时1/e.tt(j)的计算结果为0,当然就只有1.0加上唯一的tt方法返回1时候的1,就等于2.0,算多少次都一样,“/”是整除运算,你得弄清楚,它仅返回运算结果的商