在做一个基础测试题的时候遇到点小麻烦,编写程序实现:1000! = 1×2×3×4×5×...×999×1000
我用的代码是:
- class Test9
- {
- public static void main(String[] args)
- {
- int sum=1;
- for(int i=1;i<=1000;i++)
- {
-
- sum = sum*i;
- //sum*=i;
- System.out.println(sum);
- }
- System.out.println(sum);
- String str = Integer.toString(sum);
- int count=0;
- for(int i=0;i<str.length();i++)
- {
- if(str.charAt(i)=='0')
- count++;
- }
- System.out.println(sum+"中有0的个数为:"+count);
- }
- }
复制代码 输出结果为:
sum循环输出1000个0;
最后 0中有0的个数为:1
当在for循环中的不对sum进行赋值时,直接在输出时计算sum*i的值:
- class Test9
- {
- public static void main(String[] args)
- {
- int sum=1;
- int sumc=1;
- for(int i=1;i<=1000;i++)
- {
-
- //sum = sum*i;
- //sum*=i;
- System.out.println(sum*i);
- }
- System.out.println(sum);
- String str = Integer.toString(sum);
- int count=0;
- for(int i=0;i<str.length();i++)
- {
- if(str.charAt(i)=='0')
- count++;
- }
-
- System.out.println(sum+"中有0的个数为:"+count);
- }
- }
复制代码
此时输出为:
1,2,3,.......1000;
最后结果 1中有0的个数为:0;
问题:循环中为什么不能进行sum=sum*i 运算?
|
|