本帖最后由 gentleman 于 2014-5-24 12:39 编辑
大家看看我的做法怎么样,感觉效率比较高,(不建议全部算出来,因为要的只是零的个数,字符运算效率低,望采纳!- public class test {
- public static void main(String[] args) {
- int mul=1,num=0,end=1000;
- for(int i=2;i<=end;i++) {
- mul=mul*i;
- //除去乘积后面所有0,并累加这些0
- while(mul%10==0){
- mul=mul/10;
- num++;
- }
- //取得最后四位非零数字,因为下一个乘积末尾是否有0只与末尾四位数有关
- mul=mul%1000;
- }
- System.out.println(end+"的阶乘,共有"+num+"个零");
- }
- }
复制代码
经过无数次的调试,现在可以用了
|