黑马程序员技术交流社区
标题:
1000的阶乘,这个数太大怎么处理
[打印本页]
作者:
放养的饼干
时间:
2015-7-4 20:43
标题:
1000的阶乘,这个数太大怎么处理
/*求1000!的结果中包含多少个0?
注:1000! = 1×2×3×4×5×...×999×1000
思路:1、运用累加的思想来计算 x = 1×2×...×999×1000。
2、通过x%10==0来判断末尾是否为0。
3、通过x/10来进行十进制的降位操作。
*/
public class Test9
{
public static void main(String[] args)
{
//计算1000!,因为担心数据溢出,我们用long类型来定义
long product=1;
for(long num=1;num<=10;num++)
{
product=product*num;
}
System.out.print(product);
}
}
复制代码
题目和要求在代码的注释里,我的思路也在,可是刚码了没几个字就发现1000!太大了,根本存不下。
求提供个其他方法或思路
作者:
lei200703
时间:
2015-7-6 17:40
用 BigInteger来定义
作者:
ZhangHeng
时间:
2015-7-6 20:08
1楼正解
作者:
limingdada
时间:
2015-7-6 22:23
学习了 这个用的少。
作者:
叫什么
时间:
2015-7-6 22:44
来学习经验
作者:
如初见
时间:
2015-7-6 22:46
来收经验,,这个我也遇到过
作者:
Diors
时间:
2015-7-6 22:47
用二楼说的BigInteger,或者你去学习学习模拟算法
作者:
micro_hx
时间:
2015-7-6 22:48
使用数组来存储结果,结果的每一位存到数组中,做起来有些技巧,向你推荐一本书 <<算法竞赛入门经典完整版>>,关于本题有一个非常好的解答。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2