首页 > 试题广场 >

求表达式 f(n)结果末尾0的个数

[编程题]求表达式 f(n)结果末尾0的个数
  • 热度指数:3038 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入一个自然数n,求表达式 f(n) = 1!2!3!.....n! 的结果末尾有几个连续的0?

输入描述:
自然数n


输出描述:
f(n)末尾连续的0的个数
示例1

输入

11

输出

9
import java.util.Scanner;
public class Main{
    public static int fun(int num,int n){
        int count = 0;
        while(num >= n && num % n == 0){
            count++;
            num /= n;
        }
        return count;
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int num2 = 0;
        int num5 = 0;
        for(int i = 1;i <= n;i++){
            num2 += fun(i,2) * (n + 1 - i);
            num5 += fun(i,5) * (n + 1 - i);
        }
        System.out.println(num5);
    }
}

发表于 2022-04-14 16:41:54 回复(0)
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
           solve(sc.nextInt());
       }
        sc.close();
    }
    public static void solve(int n) {
		int count=0;
		int sum=0;
		for(int i=5;i<=n;i++) {
			int tmp=i;
			while(tmp%5==0) {
				count++;
				tmp/=5;	
			}
			sum+=count;
		}
		System.out.println(sum);
	}
}

发表于 2021-01-28 18:04:45 回复(0)