Given an integer n, return the number of trailing zeroes in n!.
题目很简单。
1. 0的个数取决于5和2的个数
2. 2总比5多,数5就好
3. 怎么数5. 刚开始我也被卡住了。想想容易得出 n/5 + n/25 + n/125 + ...+ n/5^i
但在写for loop时要注意值溢出的问题。
先补充些背景知识,关于integer overflow。
如果一个变量有n bytes, 那么它可以存2^8n 个不同的值。2^8n称为data type's range.
一个整形变量的overflow,不会知道它会变成什么值,可能是负数,可能是一个比int_max小的数。
所以在写这个地方的for loop时,要把for(long i; i<=n ; i *= 5) 中的i设为long类型。
Subscribe to:
Post Comments (Atom)
Leetcode 316. Remove Duplicate Letters
这道题表面问的是如何删除重复,实际在问如何从多个字符选取一个保留,从而让整个字符串按升序排列。那么策略就是对于高顺位的字符比如‘a',就要选靠前位置的保留,而低顺位字符如’z'则应该尽量选取靠后位置保留。 算法大概思路:每看到一个字符,我们要决定是否保留 1. ...
-
首先声明一下,这里的面试题主要所指数据结构和算法的题目,题目的分析集中在Leetcode上面的题目上。 我认为一道面试题由以下几个方面组成的 Question Data structure in question Data structure in solutio...
-
Given an array A of integer with size of n( means n books and number of pages of each book) and k people to copy the book. You must distribu...
-
1166. Design File System Medium 62 4 Add to List Share You are asked to design a file system which provides two functions: crea...
No comments:
Post a Comment