牛客小白月赛5 D 阶乘(factorial) 【前缀】

链接:https://www.nowcoder.com/acm/contest/135/D



题目描述

输入描述:

输入数据共一行,一个正整数n,意义如“问题描述”。

输出描述:

输出一行描述答案:

一个正整数k,表示S的末尾有k个0
示例1

输入

复制
10

输出

复制
7

说明

  鸣谢真·dalao Tyxao
 
思路:
考察求 阶乘中末尾零的个数,观察题目发现,N!  (N+1)!  只相差,N+1 因此只需要在前一个的基础上加上 N+1 中 5 的个数即可
 
AC代码:
 1 #include <iostream>
 2 using namespace std;
 3 int main(){
 4     int n;
 5     long long ans=0,sum=0;
 6     cin>>n;
 7     for(int i=1;i<=n;i++){
 8         int nn=i;
 9         while(nn%5==0){
10             ans++;
11             nn/=5;
12         }
13         sum+=ans;
14     }
15     cout<<sum;
16     return 0;
17 }

猜你喜欢

转载自www.cnblogs.com/TianyuSu/p/9383095.html
今日推荐