Java数据溢出问题

qq_25344511 2015-05-23 12:47:12
求1~100阶乘和,用了long型还赶脚溢出,怎么破???

下面贴代码:
public class ti3_4{
public static void main(String args[]){
long sum=0L;
long mul;
int i=1;
int j;
do{
j=1;
mul=1;
do{
mul=mul*j;
j++;
//System.out.println (j);
}while (j<=i);
sum=sum+mul;
i++;
}while(i<=100);
System.out.println (sum);
}
}

初学Java 希望大神们不吝赐教。
...全文
152 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南小鱼 2015-05-23
  • 打赏
  • 举报
回复
用double类型 100的阶乘用long存储就溢出,更别说1-100的阶乘和了。

//100的阶乘
double factorial(int n)
{
            if (n == 0)
            {
                return 1;
            }
            else
            {
                return n * factorial(n - 1);
            }
}
qq_25344511 2015-05-23
  • 打赏
  • 举报
回复
引用 1 楼 scmod 的回复:
BigInteger跟BigDecimal应该都可以,我只是见过这俩...没用过
我也见过...不会用[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/4.gif][/im
qq_25344511 2015-05-23
  • 打赏
  • 举报
回复
引用 2 楼 liu13241 的回复:
自己写个类比较稳妥
怎么写个类存数据...... 而且赶脚有点麻烦了...
liu13241 2015-05-23
  • 打赏
  • 举报
回复
自己写个类比较稳妥
scmod 2015-05-23
  • 打赏
  • 举报
回复
BigInteger跟BigDecimal应该都可以,我只是见过这俩...没用过

50,452

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧