Trailing_zeros_in_factorial

 




Method 1:

public class j05_trailing_zeros_in_factorial {

    static int countTrailingZeros(int n){
        int ans = 0;
        for (int i = 5; i < n; i=i*5) {
            ans = ans+n/i;
        }
        return ans;
    }

    public static void main(String[] args) {
        int number = 251;
        System.out.println(countTrailingZeros(number));
    }
}


Method 2:

public class j05_trailing_zeros_in_factorial {

    static int countTrailingZeros(int n){
        int ans = 0;
        for (int i = 5; i < n; i=i*5) {
            ans = ans+n/i;
        }
        return ans;
    }

    static int fact(int n){
        int fact = 1;
        for (int i = 2; i <= n; i++) {
            fact = fact*i;
        }
        return fact;
    }

    static int countTrailingZeros(int n){
        int ans=0;
        long fact = fact(n);
        while(fact%10==0){
            ans++;
            fact=fact/10;
        }
        return ans;
    }

    public static void main(String[] args) {
        int number = 251;
        System.out.println(countTrailingZeros(number));
    }
}


Comments