《Cracking the Coding Interview》——第17章:普通题——题目3

时间:2014-04-29 17:45:30   收藏:0   阅读:365

2014-04-28 22:18

题目:计算N的阶乘尾巴上有多少个零?

解法:计算5的个数即可,因为2 * 5 = 10,2的个数肯定比5多。计算5的个数可以在对数时间内搞定。

代码:

bubuko.com,布布扣
 1 // 17.3 Count how many zeros are there in n!?
 2 // Count the number of 5s in n!.
 3 #include <cstdio>
 4 using namespace std;
 5 
 6 int countZero(int n)
 7 {
 8     int res = 0;
 9     
10     while (n > 0) {
11         res += n / 5;
12         n /= 5;
13     }
14     
15     return res;
16 }
17 
18 int main()
19 {
20     int n;
21     
22     
23     while (scanf("%d", &n) == 1) {
24         printf("%d\n", countZero(n));
25     }
26     
27     return 0;
28 }
bubuko.com,布布扣

 

《Cracking the Coding Interview》——第17章:普通题——题目3,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!