数学—计算n!尾数为0的个数

题目描述:
计算n!尾数为0的个数,如15!=1307674368000 个数为3
算法思想:

  • n! >= 2^a*5^b ,则尾数为0的个数为min{a,b},实际上结果就是b
  • 注意5^n

全部代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

// 求阶乘尾数为0的个数 
int main(){
    
    
	int n=0,res=0;
	cin>>n;
	for(int i=5;i<=n;i+=5){
    
    
		int k = i;
		while(k/5){
    
    
			k = k/5;
			res++;
		}
	}
	cout<<res;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45666249/article/details/114438857
今日推荐