黑马程序员技术交流社区

标题: Java基础中的基础 [打印本页]

作者: 原子弹    时间: 2014-3-25 21:50
标题: Java基础中的基础
   !1000   1000的阶乘的末尾有多少个零!      不会做  求大神指教啊

作者: zhuyunfei00000    时间: 2014-3-25 22:19
首先 结尾为零 且阶乘 因2*5=10 判断1000!里面数字有几对2 和5

/**
*
*/
/**
* @author Leslie
*
*/
public class test {
/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
  int num1=0; //被2整除
  int num2=0; //被5整除
  
  
  for(int i=1;i<=1000;i++){
   int num=i;
   while(num%2==0){ //判断被二整除的个数
    num1++;
    num/=2;
   }
   while(num%5==0){ //被五整除的个数
    num2++;
    num/=5;
   }
   
  }
  System.out.println(Math.min(num1, num2));
}
}


作者: 无道    时间: 2014-3-25 22:21
我觉得这是一个规律题,,我刚刚算了一下,1-10的阶乘后面有两个零,到15就有三个,我只算到了15,后面就没有继续如果算不错的话到20应该有四个零,而这些零的出现与5有关。个人观点。不知道对不对。
作者: tcny    时间: 2014-3-26 16:13
public class Test5 {

        //计算能够被n整除的个数
        static int getDiv(int n){
                int temp = 0;
                for(int i = 1; i <= 1000; i++){
                        if(i%n == 0){
                                temp++;
                        }
                }
                return temp;
        }
        public static void main(String[] args) {

                int n = 5;
                int num = 0;
                //遍历5,25,125,625……不超过1000
                for(int i = n; i <= 1000; i*=5){
                        num += getDiv(i);
                }
                System.out.println("!1000的末尾有"+num+"个零.");
        }
}




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