列表

详情


DD4. 末尾0的个数

描述

输入一个正整数n,求n!(即阶乘)末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2

输入描述

输入为一行,n(1 ≤ n ≤ 1000)

输出描述

输出一个整数,即题目所求

示例1

输入:

10

输出:

2

原站题解

Pascal 解法, 执行用时: 1ms, 内存消耗: 292KB, 提交时间: 2018-03-23

var n:longint;
begin
  readln(n);
  writeln(n div 5+n div 25+n div 125+n div 625);
end.

C 解法, 执行用时: 1ms, 内存消耗: 356KB, 提交时间: 2018-09-16

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int cnt = 0;
    while(n>=5)
    {
        n=n/5;
        cnt+=n;
    }
    printf("%d\n",cnt);
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 372KB, 提交时间: 2020-11-27

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
    int n;
    int sum=0;
    scanf("%d",&n);
    //int bai=n/100;
    sum=n/5+n/25+n/125+n/625;
    
    printf("%d",sum);
    return 0;
}

C++14 解法, 执行用时: 1ms, 内存消耗: 384KB, 提交时间: 2020-08-06

#include <stdlib.h>

#include <stdio.h>

using namespace std;

 

int main()

    {

    int n;

    scanf("%d",&n);

    //算法

    int count = 0;

    while(n){

        count += n/5;

        n /= 5;

    }

    printf("%d",count);

    return 0;


}

C 解法, 执行用时: 1ms, 内存消耗: 476KB, 提交时间: 2018-08-24

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int cnt = 0;
    do{
        n/=5;
        cnt+=n;
    }while(n);
    printf("%d\n",cnt);
    return 0;
}

上一题