博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[C++&Rust]LeetCode No.342 4的幂(每日一题)
阅读量:4047 次
发布时间:2019-05-25

本文共 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是不是整数即可。

C++代码

class Solution {
public: bool isPowerOfFour(int n) {
if (n < 1) return false; double t = log10(n) / log10(4); return t == int(t); }};

Rust代码

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/

你可能感兴趣的文章
有关send() / recv()函数的理解
查看>>
ping在类unix下的实现
查看>>
python下操作数据库
查看>>
python下对数据库的操作(2) 图片的存取
查看>>
常用排序算法总结(一) 比较算法总结
查看>>
剖析 Linux hypervisor
查看>>
常用排序算法总结(二)
查看>>
基于redhat的发行版本的linux系统 下 扩展Swap分区
查看>>
Fedora下安装Fcitx
查看>>
SSH原理与运用
查看>>
libvirt LXC driver --pass-fds
查看>>
Python ::OS模块 提供的接口介绍
查看>>
Python调用shell命令的几种方法(在新进程中执行shell命令)
查看>>
shell快捷键大全
查看>>
linux 4.15.7内核fedora(Ubuntu)下编译安装
查看>>
GRV – 可视化git仓库工具
查看>>
docker 镜像构建实践pagekit CMS(docker hub/docker cloud)
查看>>
搭建Docker Registry(2) 代理+认证(doing)
查看>>
简单Gitlab服务器的搭建(Gitlab+GerRit+Jenkins)
查看>>
简单GerRit服务器的搭建(Gitlab+GerRit+Jenkins)
查看>>