-
Notifications
You must be signed in to change notification settings - Fork 5
MATH
YaoYilin edited this page Aug 3, 2018
·
2 revisions
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
public int TrailingZeroes(int n)
{
if(n < 5)
return 0;
return n / 5 + TrailingZeroes(n / 5);
}
当 0 < n < 5
的时候, f(n!) = 0
。当n >= 5
的时候f(n!) = k + f(k)
,其中k = n / 5
。
其实这道题的实质就是在找有1~n中多少个5的因子(比如10 = 2 * 5, 10中也包含1个5)。
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例 1:
输入: 27
输出: true
示例 2:
输入: 0
输出: false
示例 3:
输入: 9
输出: true
示例 4:
输入: 45
输出: false
进阶:
你能不使用循环或者递归来完成本题吗?
public bool IsPowerOfThree(int n)
{
return (n > 0 && 1162261467 % n == 0);
}
1162261467是int类型中3的幂的最大的。
GOTO HOME ● BIT OPERATION ● LINKED LIST ● MATH ● STACK ● TREE