LeetCode每日打卡 - 4的幂

在这里插入图片描述

不使用循环来今天解题

    public boolean isPowerOfFour(int n) {return n > 0 && (n & (n-1)) == 0 && n % 3==1;}

首先去做了2的幂这道题,并了解了n&(n-1)的过程,然后思考一下这道题:求二进制中1的个数,理解了n&(n-1)这个题就好做了。

在这里插入图片描述

    public static int xxxxx(int n) {int i = 1;while((n&(n-1)) != 0){i++;}return i;}

在这里插入图片描述

    public boolean isPowerOfTwo(int n) {return n > 0 && (n & (n - 1)) == 0;}

与2的幂不同的是4的幂的位数一定是偶数个

看了下题解,如何来获取位数,但是感觉下面这个办法简单一些

如果 nn 是 44 的幂,那么它可以表示成 4^x4
x
的形式,我们可以发现它除以 33 的余数一定为 11,即:

4^x \equiv (3+1)^x \equiv 1^x \equiv 1 \quad (\bmod ~3)
4
x
≡(3+1)
x
≡1
x
≡1(mod 3)

如果 nn 是 22 的幂却不是 44 的幂,那么它可以表示成 4^x \times 24
x
×2 的形式,此时它除以 33 的余数一定为 22。

因此我们可以通过 nn 除以 33 的余数是否为 11 来判断 nn 是否是 44 的幂。

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

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

相关文章

【转】探索c#之Async、Await剖析

阅读目录: 基本介绍基本原理剖析内部实现剖析重点注意的地方总结 基本介绍 Async、Await是net4.x新增的异步编程方式,其目的是为了简化异步程序编写,和之前APM方式简单对比如下。 APM方式,BeginGetRequestStream需要传入回调函数…

时间计算题100道_小学数学专项练习:计算题200道,趁早打印给孩子,期末考试拿100分!...

点击上方「升学的秘诀」关注我们!获取更多教育经验、方法、学习资料等,每天中午12点与您相约!▼说到我们数学学习过程中最重要的是什么?毋庸置疑那就是我们的一个计算能力,计算可以说是贯穿了我们整个数学学习体系&…

批处理for命令各开关的含义

for基本使用方法是( 也就是不加功能扩展开关 。) FOR %variable IN (set) DO command [command-parameters] 功能扩展开关有: /d 、 /r 、 /f 、 /l 要是死记其功能的话头都大了。巧记的方法是: d :英文为&am…

幂等性实现 -接口幂等性

接口幂等性 1.什么是幂等性 对于同一笔业务操作,不管调用多少次,得到的结果都是一样的。 也就是方法调用一次和调用多次产生的额外效果是相同的,他就具有幂等性 2.为什么需要幂等性 在系统高并发的环境下,很有可能因为网络&#…

C 怎么读取Cpp文件_python之调用C加速计算(一)

一、前言python语言是目前比较火的语言,很容易上手,对数据处理也比较友好,可以用几行代码就能进行一些简单的数据处理工作。但是对于稍微大型的数值计算,或者一些涉及到大量循环的数值计算python的计算速度有点让人失望。即使是使…

【转】刨根究底字符编码【2.0版】(3):字符编码的由来、演变与ASCII码

为什么需要字符编码 1. 计算机一开始发明出来时是用来解决数字计算问题的,后来人们发现,计算机还可以做更多的事,例如文本处理。 但计算机其实挺“笨”的,它只“认识”010110111000…这样由0和1两个数字组成的二进制数字&#…

JS创建对象的模式介绍

转自http://www.cnblogs.com/asqq/archive/2013/02/01/3194993.html

ElasticSearch - JAVAAPI练习

索引 package com.chun.estest.demo;import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.http.HttpHost; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.delete.DeleteRequest; import or…

matplotlib的优点_超详细matplotlib基础介绍!!!

(给Python开发者加星标,提升Python技能)来源:逐梦erhttps://zhumenger.blog.csdn.net/article/details/106530281【导语】:出色的数据可视化,会让你的数据分析等工作锦上添花,让人印(升)象(职)深(加)刻(薪)。matplotli…

【转】WPF PRISM开发入门一( 初始化PRISM WPF程序)

这篇博客将介绍在WPF项目中引入PRISM框架进行开发的一些基础知识。目前最新的PRISM的版本是Prism 6.1.0,可以在Github上获取PRISM的源码。这个系列的博客将选择PRISM 4.1版本来讲解。可以从微软官网上下载到PRISM 4.1相关内容。将下载下来的文件解压开: …

JS 给某个对象添加专属方法

function A() {this.name "A"; } a new A(); a.func function() {alert(this.name); } a.func(); // func只有a对象能够使用。 function A() {this.name "A";this.func function(){ale…

截屏悬浮软件_功能强大,却小巧的录屏软件,不在错过你的王者时刻

看看录屏是一款操作简单。功能强大的录屏软件。他可以设置你录制视频的一个分辨率,帧率以及录制屏幕方向,非常方便,用户将手机摇一摇就可以控制开启和停止录屏,高效录制精彩瞬间,在录制游戏视频的时候也可以做到不掉帧…

【转】对ASP.NET程序员非常有用的85个工具

介绍 这篇文章列出了针对 ASP.NET 开发人员的有用工具。 工具 1. Visual Studio Visual Studio Productivity Power tool:Visual Studio 专业版(及以上)的扩展,具有丰富的功能,如快速查找,导航解决方案&am…

JAVA 捕获异常所遇BUG

排查程序BUG时发现,在线程池的定时器内并未进行异常捕获,而是在定时器外try catch的,内部实现中从HashMap中Get数据,没有此KEY所有返回了NULL,后面没对NULL做处理,导致程序出现异常,然后上层又没…

公司用的非标普通自动化用单片机还是plc_PLC的介绍

PLC又叫可编程控制器,一开始是替代传统接触器的一个东西。随着人工价格不断的上涨,自动化的设备会越来越普及。自动化不再是大企业才用的起的东西 ,各种多元化小型自动化设备进入了普通小企业甚至家庭作坊。PLC其实是单片机开发出来的一种工业…

【转】!C# 基础至集合-数组、List<T>、ArrayList、LinkedList、HashMap的一些区别

在C#中&#xff0c;数组由于是固定长度的&#xff0c;所以常常不能满足我们开发的需求。 由于这种限制不方便&#xff0c;所以出现了ArrayList。 ArrayList、List<T> ArrayList是可变长数组&#xff0c;你可以将任意多的数据Add到ArrayList里面。其内部维护的数组&…

JS字面量对象

<pre name"code" class"javascript">var A {name : "A",age : 18,sayNameAge : function(){ alert(A.name);alert(A.age);} }A.sayNameAge我搜到的资料上面都叫这种产生对象的方式叫 “对象字面量”&#xff0c;而我认为叫做 "字面量…

Hbase2修复 - HBCK2

第一次尝试修复HBase&#xff1a;https://blog.csdn.net/weixin_43736084/article/details/121336868 第二次尝试修复HBasehttps://blog.csdn.net/weixin_43736084/article/details/121336326

比较文本差异的工具_Linux 开发的五大必备工具 | Linux 中国

Linux 已经成为工作、娱乐和个人生活等多个领域的支柱&#xff0c;人们已经越来越离不开它。在 Linux 的帮助下&#xff0c;技术的变革速度超出了人们的想象&#xff0c;Linux 开发的速度也以指数规模增长。因此&#xff0c;越来越多的开发者也不断地加入开源和学习 Linux 开发…