当前位置: 代码迷 >> Eclipse >> 新手求指教,阶乘有关问题的程序
  详细解决方案

新手求指教,阶乘有关问题的程序

热度:74   发布时间:2016-04-23 01:07:24.0
新手求指教,阶乘问题的程序
计算的是1+1/2!+...+1/20!
程序如下:

double sum = 0,a = 1;
int i = 1;
while(i<=20)
{  sum = sum+a;
i++;
a = a*(1.0/i); //问题就在这里,为什么一定要用(1.0/i)而不是(1/i)?为什
                                          么当为(1/i)时,最后运行结果为1?
}
System.out.println(sum);
}
阶乘

------解决方案--------------------
因为1是int类型,那么1/i也是int类型,且结果为0,所以结果就只有最初的a,以我的知识是这样理解,不一定正确
------解决方案--------------------
引用:
你的理解基本正确,1.0默认是float类型。1是int

1.0默认是double吧,float类型不是要在末尾加f或F吗
------解决方案--------------------
引用:
Quote: 引用:

你的理解基本正确,1.0默认是float类型。1是int

1.0默认是double吧,float类型不是要在末尾加f或F吗

我了个去,糊涂了,是double
------解决方案--------------------
用1.0将使算出的结果为浮点型,用1则是整形忽略小数点
  相关解决方案