本题思路概述:
阶乘尾数为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;
}
};