A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class lianxi
{
        public static void main(String []args)
         {
                int sum=1;
                for(int i=1;i<=100;i++)
                 {
                        sum*=i;
                 }
                   System.out.println(sum);
         }                 
}
         
请问我程序那出错 了,每次都是0,复制别人的就是100内乘积!哎。。。

29 个回复

倒序浏览
已经超出了int的上限了,溢出了。
你这用long型都没法装。只能用BIgInteger,如果单纯只是算结果的话。
回复 使用道具 举报
9.33262154439441E157
回复 使用道具 举报
戒风 来自手机 中级黑马 2014-7-24 18:23:05
板凳
溢出了,,
回复 使用道具 举报
其实你可以自己调试一下看看  把输出语句放在for循环里面 看看每次得出的结果是多少
回复 使用道具 举报
很简单int表示的范围是-2147483648~2147483647,你的答案已经超出范围,所以给你个0.
回复 使用道具 举报
en   结果溢出了
回复 使用道具 举报
郭良 中级黑马 2014-7-24 21:10:37
8#
来学习学习
回复 使用道具 举报
看来要考虑很多
回复 使用道具 举报
我也是来学习的,,
回复 使用道具 举报
来学习的,确实也没考虑到溢出:L真失败
回复 使用道具 举报
原来如此,学习了
回复 使用道具 举报
还真没注意到这些
回复 使用道具 举报
确实不好想到啊
回复 使用道具 举报
你考虑过int的感受么
回复 使用道具 举报
100的阶乘数值的确很大,int装不下
回复 使用道具 举报
溢出了int类型的范围是2*32
回复 使用道具 举报
这是java特性造成的,当存储范围过大,装不下时会发生内存溢出,返回0
回复 使用道具 举报
彬锐 发表于 2014-7-24 18:23
其实你可以自己调试一下看看  把输出语句放在for循环里面 看看每次得出的结果是多少  ...

哈哈,谢谢
回复 使用道具 举报
star5603 发表于 2014-7-24 17:23
已经超出了int的上限了,溢出了。
你这用long型都没法装。只能用BIgInteger,如果单纯只是算结果的话。
...

谢谢。。。。。哈哈
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马