设计一个算法,计算出n阶乘中尾部零的个数 样例 1: 输入: 11 输出: 2
样例解释:
11! = 39916800, 结尾的0有2个。
样例 2: 输入: 5 输出: 1
样例解释:
5! = 120, 结尾的0有1个。
功能实现
class Solution{
public:
long long trailingZeros(long long n
) {
int temp
= multi(n
);
int count
= 0;
while((temp
% 10) == 0){
count
++;
temp
/= 10;
}
return count
;
}
private:
long long multi(long long n
){
if (n
== 1){
return 1;
}
else{
return n
* multi(n
- 1);
}
}
};
功能测试
int main() {
int tempp
= 0;
int num
;
cin
>> num
;
Solution s
;
tempp
= s
.trailingZeros(num
);
cout
<< tempp
<< endl
;
return 0;
}
注意:这里需要考虑时间复杂度的问题