题目要求:Given an integer n, return the number of trailing zeroes in n!.
我的解法:
int trailingZeroes(int n) {
if(n>=5)
{
int k = n/5;
return k+trailingZeroes(k);
}
else
{
return 0;
}
}
分析:可以很清楚的知道,给阶乘结果贡献末尾0的,是5的倍数以及偶数,但是偶数明显数量比较多,所以只考虑5的个数,也就是1……n中因子5的个数。
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>