Java求1+1/2!+1/3!...的前20项和
答案:2 悬赏:50
解决时间 2021-01-23 02:02
- 提问者网友:佞臣
- 2021-01-22 12:10
Java求1+1/2!+1/3!...的前20项和
最佳答案
- 二级知识专家网友:行雁书
- 2021-01-22 12:23
i 定义为int类型,1/i 就只会取整,结果一直为0 ,并非2分之1、3分之1......
所以结果只有第一次相加的1.0 + 0 + 0......
改为:
public class A{
public static void main(String[] args) {
int i;
double s=0,j=1;
for(i=1;i<=20;i++){
j=j*i;
s=s+1/j;
}
System.out.println(s);
}
}
所以结果只有第一次相加的1.0 + 0 + 0......
改为:
public class A{
public static void main(String[] args) {
int i;
double s=0,j=1;
for(i=1;i<=20;i++){
j=j*i;
s=s+1/j;
}
System.out.println(s);
}
}
全部回答
- 1楼网友:第四晚心情
- 2021-01-22 13:52
1换成1.0不然会自动转换成整数的
public static void main(String[] args) {
double sum = 0.0;
int b = 1;
for (int i = 1; i < =20; i++) {
b = b * i;
sum += 1.0 / b;
}
System.out.println(sum);
}
}
追问:没用啊,我该成1.0还是没有输出
追答:sum+=(1/k);改这个,
要不运行我写的那个
for (int j = 1; j <= i; i++)
k = k * j;
你的代码写的有问题,先不说计算对不对,
你看上边的,一直在循环,跳不出来,
i一直在加,j不变
public static void main(String[] args) {
double sum = 0.0;
int b = 1;
for (int i = 1; i < =20; i++) {
b = b * i;
sum += 1.0 / b;
}
System.out.println(sum);
}
}
追问:没用啊,我该成1.0还是没有输出
追答:sum+=(1/k);改这个,
要不运行我写的那个
for (int j = 1; j <= i; i++)
k = k * j;
你的代码写的有问题,先不说计算对不对,
你看上边的,一直在循环,跳不出来,
i一直在加,j不变
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯