黑马程序员技术交流社区

标题: 输出结果为什么是0? [打印本页]

作者: world.net    时间: 2015-6-24 22:51
标题: 输出结果为什么是0?
  1. class Test{
  2.         public static void main(String[]args)throws Exception{
  3.                 int a=1;
  4.                 for(int x=1;x<=1000;x++){
  5.                         a=a*x;       
  6.                 }
  7.                 System.out.print(a);
  8.         }
  9. }
复制代码

作者: wx_J25HxI5W    时间: 2015-6-24 23:40
你的需求是,要找一个数乘以另一个数等于本身,0乘以任意一个数等于0啊!
作者: wx_J25HxI5W    时间: 2015-6-24 23:43
我错了,你这个a的值超出int范围了。
作者: wx_J25HxI5W    时间: 2015-6-24 23:44
我错了,你这个a的值超出int范围了。
作者: GiveUp    时间: 2015-6-24 23:46
因为超出范围了,所以,你懂得。。自己去用补码换算一下吧
作者: bingo54    时间: 2015-6-24 23:50
double试了吗?
作者: zlpiano    时间: 2015-6-25 00:28
阶乘到一千,这个数太大了,绝对溢出了
作者: John_Lee    时间: 2015-6-25 06:41
int型分配的字节数应该与编译器有关吧,不同的编译器分配的字节数也许不一样把。。。你的程序是1到1000的阶乘,a的值太大超出了int范围,数据发生溢出了。。。。
作者: 进军黑马    时间: 2015-6-25 07:37
   跟着学习了下,  回顾了下知识
作者: zy18692243338    时间: 2015-6-25 09:45
d大姐,数据溢出了~~~
作者: Diors    时间: 2015-6-25 13:35
使用BigInteger,你这里超出范围
作者: home7192    时间: 2015-6-25 14:28
长知识了,学习一下!
作者: EnderDBluse    时间: 2015-6-25 15:20
超出int范围了
作者: 改变    时间: 2015-6-25 15:26
我也觉得应该是溢出了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2