172.阶乘后的零

本题思路概述:
阶乘尾数为0,要得到0的尾数,就需要偶数与5相乘,由于偶数个数远远多于5的个数,所以有几个5,尾数就有几个0,同时,10可以看做2*5(一个5),25看做5*5(两个5)。
while循环写法的思路:
用整数b来记录0的个数,当n大于5的的时候,我们先计算有几个数字包含一个5,所以让n除以5,得到包含一个5的数字的个数,并赋值给b。之后再除以5,得到有两个5的数字的个数…一直循环到n<5,不再有数字包含5。

#include<iostream>
#include<vector>
#include<stack>
#include<algorithm>
using namespace std;
class Solution {
public:
	int trailingZeroes(int n) {
		int b = 0;
		while (n >= 5)
		{
			b += n / 5;
			n = n / 5;
		}
		return b;
	}
};
发布了98 篇原创文章 · 获赞 1 · 访问量 4473

猜你喜欢

转载自blog.csdn.net/weixin_40823740/article/details/103828062
今日推荐