题目 难度: 类型:数学 给定一个整数,写一个函数来判断它是否是 3 的幂次方. 进阶: 你能不使用循环或者递归来完成本题吗? 示例 示例 1: 输入: 27 输出: tr e 示例 2: 输入: 0 输出: false 示例 3: 输入: 9 输出: tr e 示例 4: 输入: 45 输出: false 解答 这道题跟[题目231. 2的幂]属于同一个类型,递归和迭代写法可以直接参考该题目,这里为大家介绍一种时间和空间复杂度均为o(1)的解法. 我们知道,输入是32位有符号整数,范围是[-231~231-1],即[-~],在这个范围内3的幂是有限的,而且最大的是3^19=,这个最大的3的幂除以其他任何一个3的幂,余数一定是0,而除以任何一个不是3的幂的数,则余数一定不为零,根据这个原理,我们就可以解决3的幂的判别问题.