[51NOD](1003)阶乘后面0的数量 ---数学

本文介绍了一种快速计算任意正整数阶乘结果中尾随0数量的方法。通过分析发现,尾随0的数量取决于因子5的出现次数。文章提供了一个简洁高效的C++程序实现,该程序能够处理高达10^9的输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

description

n的阶乘后面有多少个0?
6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。

Input

一个数N(1 <= N <= 10^9)

Output

输出0的数量

Input示例

5

Output示例

1

解题新知:偶数和5的乘积会产生一个0,所以我们我们直接找阶乘中的每个整数i含有多少个因子5。

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL),cout.tie(NULL);
    int n;
    cin>>n;
    int sum=0;
    for(;;)
    {
        n/=5;
        if(!n)
            break;
        else
            sum+=n;
    }
    cout<<sum<<endl;
    return 0;
}

详解:求关于n的阶乘结果后面有几个零?如2016的阶乘(网易的笔试选择题)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值