zoukankan      html  css  js  c++  java
  • 不要被阶乘吓到

    问题1.给定一个整数N,那么N的阶乘N!末尾有多少个0.

    问题2:求N!中二进制最低位位1的位置;

    java实现:

    package 经典;
    
    public class 阶乘 {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            
            System.out.println(fictorial(10)+" 中 0 的个数为: "+numOfZero(10)+","+Integer.toBinaryString(fictorial(10))+"中二进制最低位位1的位置"+lowestOne(10));
        }
        
        public static int fictorial(int n)
        {
            int N=1;
            for(int i=1; i<=n; i++)
                N=N*i;
            return N;
        }
        
        public static int numOfZero(int n)
        {
            int result=0;
            int j;
            for(int i=1; i<=n; i++)
            {
                j=i;
                while(j%5==0)
                {
                    result++;
                    j/=5;
                }
            }
            
            return result;
        }
        
        public static int lowestOne(int n)
        {
            int ret=0;
            
            while(n!=0)
            {
                n>>=1;
                ret+=n;
            }
            return ret;
        }
    
    }
  • 相关阅读:
    hdu 2227
    小A的数学题
    E
    F
    C
    Ping-Pong (Easy Version)的解析
    余数之和BZOJ1257
    大数求余
    数论学习 算法模板(质数,约数)
    Acwing 197. 阶乘分解
  • 原文地址:https://www.cnblogs.com/huangcongcong/p/4008497.html
Copyright © 2011-2022 走看看