首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

面试官:判断个数是否2的整数次幂

题目 判断个正整数是否是2的整数幂(如4是2的2次方,返回true;5不是2的整数次幂,则返回false)。要求性能尽可能高。...第二种考虑(除法) 2的整数次幂都能被2整除,所以进入个循环,让目标对2求余,如果有余数,则目标不是2的整数次幂,如果没有余数,然后目标赋值目标除以2,直到目标小于1,当目标小于1的时候则说明明目标是...第三种考虑(位运算) 让我们看看2的整数次幂转成二进制是什么样的 十进制 二进制 是否2的整数次幂 8 1000 是 16 10000 是 32 100000 是 64 1000000 是 100 1100100...十进制 二进制 原数值减1 是否2的整数次幂 8 1000 111 是 16 10000 1111 是 32 100000 11111 是 64 1000000 111111 是 100 10000000...十进制 二进制 原数值减1 n&n-1 是否2的整数次幂 8 1000 111 0 是 16 10000 1111 0 是 32 100000 11111 0 是 64 1000000 111111

94920

Python判断个数是否素数

前言本文转自 Python学习日记 – 素数判断扶木成枫 – 生命的绽放​fmcf.cc​fmcf.cc对于个数是否素数,常规的方法就是 2、5、7、11、13、17 来试验,可是这样的方法仅在 1000...以下的数有较高正确率,就在想,有没有种绝对正确并且不使用 Python 其它模块的方法来判断素数,毕竟有了 Python 数学模块,素数的判断就变得很简单了,但是引入个数学模块似乎会有些多余了。...\n欢迎来到这里,我们将在这里计算你所输入的数字是否素数。")...else: print("是素数")总共46行代码,可以在极短时间内,判断个数是否素数,但是这个算法,是不准确的!...在判断个数 n 是否是素数时,我们可以用从 1 到 n 的所有数,挨个去除 n 得到是否整除,如果整除的次数大于 2 就意味着除了 1 和 n 本身外,存在其它数可以整除它,就违背了素数的概念,意味着这个

1.1K30

Java-判断整数是否2的整数次幂

https://blog.csdn.net/li_xunhuan/article/details/90138499 题目描述: 给定整数...,编写个函数来判断是否是 2 的幂次方。...1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false 方法1:我们对个数字进行为运算操作...,经过观察显然有2的整数次幂其二进制数只有1,那么我们利用这个特点,进行位右移操作,统计1个总个数,最后凭借总个数判断是否2的整数次幂 代码1: class Solution { public...1的特点进行解题,但是不再用位移操作,二是利用个性质,2的整数次幂如1000 减1得到的数0111,除了最高位,其余位都为1,那么进行与运算必得到0;但是如果不是2的整数次幂,其-1,最高位并仍然

1.3K20

PHP判断个变量是否整数、正整数的方法示例

在PHP中判断个变量是否整数 在写PHP代码的时候遇到这样个小问题:如何判断个变量是否整数,于是在网上找到了两个方法来解决,在此做个小小的记录。 方法1 <?...这里用is_int()方法来判断传入的参数是否整数形(int),而不是判断是否整数,略显局限。 方法2 <?...将四舍或者五入后的值与原来的值比较,若相等则为整数,不等则不为整数。...php判断个变量是否整数 方法: if(preg_match("/^[1-9][0-9]*$/" ,$amount)){ die('是正整数'); } 方法二: $ num = '45 .7'...== false){ die(“ 不是整数”); } else { die(“ 是整数”); } 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有定的参考学习价值,谢谢大家对

4.9K20

判断个数是否在40亿个整数中?

最近看到道经典面试题: 在40亿的unsigned int数据中(乱序),给定个数字target, 判断该target是否存在于这40亿的数据中?...准备工作: 如下代码随机生成[1, 2147483648)的整数集保存在D盘根目录下a.txt,生成数据(整数)之后(约占磁盘40G),用代码再统计下生成的数字有3999999040(嗯?...使用set集合add操作,将40亿的数据次性加载进内存,然后只需要使用contains方法判断target是否存在即可 问题: 个unsigned int的元素,需要占4B的空间,按照最坏的打算,40...在计算机中,bitmap是用作某个值(例如: 给定范围的整数),映射位(bit), 也被叫做位数组或位图)。...无法表示[40亿, 40亿+63] 开辟62500001个空间大小的long类型数组,为了好算,即625000000*8=5*10^8约等于0.5G = 512MB 如下是arr数组中的值,存储bitmap

1.2K40

如何判断个数是否在 40 亿个整数中?

今天他就去BAT中的家面试了。 简单的自我介绍后,面试官给了小史个问题。 【面试现场】 ? ? 题目:我有40亿个整数,再给个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? ?...小史:哦,对哦,这样我就申请40亿个位就好了,新的数转换成个位,然后判断下这个位是0还是1就行了。 吕老师:小史啊,考虑问题要考虑清楚啊,如果是40亿个位,那么这40亿个位哪些是0,哪些是1呢?...来了个新的数,怎么判断是否在40亿个位之中? ? 小史:我想想,对啊,40亿个位,40亿个数,那么每个位都是1,这。。。...小史:意思是我把整个整数范围都覆盖了,哦,对哦。这样来,就可以做了,1代表第个位,2代表第二个位,2的32次方代表最后个位。40亿个数中,存在的数就在相应的位置1,其他位就是0。 ?...首先,32位int的范围是42亿,40亿整数中肯定有些是连续的,我们可以先对数据进行个外部排序,然后用个初始的数和个长度构成个数据结构,来表示段连续的数,举个例子。

82970
领券