首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

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

2013-10-27 
新手求指教,阶乘问题的程序计算的是1+1/2!+...+1/20!程序如下:double sum 0,a 1int i 1while(i2

新手求指教,阶乘问题的程序
计算的是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则是整形忽略小数点

热点排行