LintCode基础刷题汇总

考研结束了,并没有觉得多理想,甚至专业课考得很是糟糕,趁现在这段稍微空闲的时间放空一下自己,无论是不是要二战还是得继续努力。
恰好看到LintCode有些题目很基础,练练手,考数据结构的算法题有一道还不会写,难受。

1.输入一个正整数n,求n!末尾有多少个0? 比如: n = 10; n! = 3628800,所以答案为2。

这个题目不是要让你先求n的阶乘,然后再求末尾0的个数,思考,末尾的0是由于因数(2,5)决定的,而2的数量又远大于5,因此求出n阶乘中5因数的数目便是答案。

int a=0;
while(n>0){
	a+=n/5;
	n/=5;
}
return a;

答案有误,因为定义的a是整型(4字节,32位和long是一样的)显然超出范围了,因而将int改成long long(8字节64位),答案正确。
LintCode基础刷题汇总_第1张图片

你可能感兴趣的:(工作学习)