新手求指教,阶乘问题的程序
计算的是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,以我的知识是这样理解,不一定正确
[解决办法]