《算法通关村——幂运算问题解析》

《算法通关村——幂运算问题解析》

2 的幂

给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false

如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。

示例 1:

输入:n = 1
输出:true
解释:20 = 1

示例 2:

输入:n = 16
输出:true
解释:24 = 16

示例 3:

输入:n = 3
输出:false

示例 4:

输入:n = 4
输出:true

示例 5:

输入:n = 5
输出:false

提示:

  • -231 <= n <= 231 - 1

题解

二的幂肯定二进制中只有一个1,所以通过 n&(n-1) 是二进制中的最后一个 1 变为 0,此时如果最后一个1 变为 0 了,那么结果就为 0 了。

class Solution {public boolean isPowerOfTwo(int n) {// if(n<=0){//     return false;// }// while(n % 2==0){//     n /=2;// }// return n == 1;return n > 0 && (n&(n-1)) == 0;}
}

3 的幂

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false

整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x

示例 1:

输入:n = 27
输出:true

示例 2:

输入:n = 0
输出:false

示例 3:

输入:n = 9
输出:true

示例 4:

输入:n = 45
输出:false

提示:

  • -231 <= n <= 231 - 1

题解

class Solution {public boolean isPowerOfThree(int n) {if(n <= 0){return false;}while(n%3==0){n /= 3;}return n == 1;}
}

4 的幂

给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false

整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x

示例 1:

输入:n = 16
输出:true

示例 2:

输入:n = 5
输出:false

示例 3:

输入:n = 1
输出:true

提示:

  • -231 <= n <= 231 - 1

思路

在这里插入图片描述

代码

class Solution {public boolean isPowerOfFour(int n) {// if(n <= 0){//     return false;// }// while(n % 4 == 0 ){//     n/=4;// }// return n==1;return n > 0 && (n & (n-1)) ==0 && (n & 0xaaaaaaaa)==0;}
}

点击链接:我正在「编程导航」和朋友们讨论有趣的话题,你⼀起来吧?

也可以加我QQ(2837468248)咨询说明来意!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/209331.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hutool

一、简介 Hutool是一个小而全的Java工具类库&#xff0c;通过静态方法封装&#xff0c;降低相关API的学习成本&#xff0c;提高工作效率&#xff0c;使Java拥有函数式语言般的优雅 官方文档: https://www.hutool.cn/docs/#/ 二、包含组件 一个Java基础工具类&#xff0c;对文…

梁培强:塑造下一代投资高手

在当前全球经济动荡和金融市场快速变化的背景下&#xff0c;梁培强的投资教育计划不仅仅是一套课程&#xff0c;它是对传统投资理念的深度挑战和革新。梁培强&#xff0c;拥有超过二十年金融行业经验的资深分析师&#xff0c;正在引领一场投资者教育的变革&#xff0c;旨在培养…

Java核心知识点整理大全9-笔记

目录 null文章浏览阅读9w次&#xff0c;点赞7次&#xff0c;收藏7次。Java核心知识点整理大全https://blog.csdn.net/lzy302810/article/details/132202699?spm1001.2014.3001.5501 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯…

3.volatile基本原理及缺陷

目录 概述案例代码如下执行结果 原理实现内存可见性的过程硬件上的内存屏障底层分析java中的四种内存屏障 缺陷代码执行结果 结束 概述 想要多线程程序正确的执行&#xff0c;必须要保证原子性、可见性及有序性。只要有一个没有被保证&#xff0c;就有可能导致程序运行不正确。…

图像分类原理

一、什么是图像分类(Image Classification) 图像分类任务是计算机视觉中的核心任务&#xff0c;其目标是根据图像信息中所反映的不同特征&#xff0c;把不同类别的图像区分开来。 二、图像分类任务的特点 对于人来说&#xff0c;完成上述的图像分类任务简直轻而易举&#xf…

TypeScript快速入门

基础类型 类型定义例子布尔值Boolean赋值为true或者falselet isDone:boolean false数字number支持十进制、八进制、十六进制let decLiteral: number 2023; let binaryLiteral: number 0b11111100111;let octalLiteral: number 0o3747;let hexLiteral: number 0x7e7;字符串…

办公技巧:Word中插入图片、形状、文本框排版技巧

目录 一、插入图片排版技巧 二、添加形状排版技巧 三、插入“文本框”排版技巧 我们平常在制作word时候经常会遇到插入选项卡下的图片、形状和文本框这三种情况下&#xff0c;那么如何使得Word文档当中添加这三个元素的同时&#xff0c;又能保证样式美观呢&#xff0c;今天小…

NX二次开发UF_CAM_set_clear_plane_data 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CAM_set_clear_plane_data Defined in: uf_cam_planes.h int UF_CAM_set_clear_plane_data(tag_t object_tag, double origin [ 3 ] , double normal [ 3 ] ) overview 概述 De…

【LeetCode】每日一题 2023_11_23 HTML 实体解析器(调库/打工)

文章目录 刷题前唠嗑题目&#xff1a;HTML 实体解析器题目描述代码与解题思路 结语 刷题前唠嗑 题目&#xff1a;HTML 实体解析器 题目链接&#xff1a;1410. HTML 实体解析器 题目描述 代码与解题思路 func entityParser(s string) (ans string) {return strings.NewRepla…

TransFusionNet:JetsonTX2下肝肿瘤和血管分割的语义和空间特征融合框架

TransFusionNet: Semantic and Spatial Features Fusion Framework for Liver Tumor and Vessel Segmentation Under JetsonTX2 TransFusionNet&#xff1a;JetsonTX2下肝肿瘤和血管分割的语义和空间特征融合框架背景贡献实验方法Transformer-Based Semantic Feature Extractio…

介绍几种Go语言开发的IDE

文章目录 1.前言2.几种ide2.1 Goland2.2 VsCode示例 2.3 LiteIDE2.4 Eclipse插件GoClipse2.5 Atom2.6 Vim2.7 Sublime Text 3.总结写在最后 1.前言 Go语言作为一种新兴的编程语言&#xff0c;近年来受到了越来越多的关注。 它以其简洁、高效和并发性能而闻名&#xff0c;被广…

微服务 Spring Cloud 9,RPC框架,客户端和服务端如何建立网络连接?

目录 一、客户端和服务端如何建立网络连接&#xff1f;1、HTTP通信2、Socket通信 二、服务端如何处理请求&#xff1f;1、通常来说&#xff0c;有三种处理方式&#xff1a;2、不同的处理方式对应着不同的业务场景&#xff1a; 三、HTTP协议传输流程四、数据该如何序列化和反序列…