读书人

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

发布时间: 2013-10-27 15:21:50 作者: rapoo

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

读书人网 >Eclipse开发

热点推荐