本文共 817 字,大约阅读时间需要 2 分钟。
原贴地址:
给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true
;否则,返回 false
。
整数 n
是 4 的幂次方需满足:存在整数 x
使得 n == 4x
示例 1:
输入:n = 16输出:true
示例 2:
输入:n = 5输出:false
示例 3:
输入:n = 1输出:true
提示:
-231 <= n <= 231 - 1
进阶:
这个题目非常简单。
我一开始想到的是用 log \log log做,因为没有 l o g 4 ( x ) log_4(x) log4(x)的函数,我就用了一下换底公式 r e s = l o g 4 ( x ) = l o g ( x ) l o g ( 4 ) res=log_4(x)=\frac{log(x)}{log(4)} res=log4(x)=log(4)log(x) 然后再判断这个res是不是整数即可。class Solution { public: bool isPowerOfFour(int n) { if (n < 1) return false; double t = log10(n) / log10(4); return t == int(t); }};
impl Solution { pub fn is_power_of_four(n: i32) -> bool { if n < 1 { false } else { let t = (n as f64).log10() / 4f64.log10(); t == t.round() } }}
转载地址:http://wuuci.baihongyu.com/