99问答网
所有问题
怎样用一行语句判断一个整数是否为2的幂次,请用C语言写
一道面试题
一楼的答案不好,我见过一个很巧妙的方法,问题我写错了 ,是用一个语句解决这个问题,不是用一行。只记得算法的效率很高,很巧妙,好像用了逻辑与。
我想到了!!!
(x-1) xor 0+1==x
举报该问题
其他回答
第1个回答 2006-06-27
2的幂次有个特点,就是2的幂次值在系统里二进制存储的时候1的个数为1
bool func(long n)
{
int p=0;
for (int i=0;i<32;i++,n>>=1) if(n&1) p++;
return (p==1);
}
复杂度O(1),位运算应该很快了
我想知道是什么地方的面试题?
要是就用一行就for(int i=0,p=0;i<32;p+=n&1,i++,n>>=1);return (p==0)
再好的想不出了
第2个回答 2012-05-06
cout<<( (n-1)&n?false:true )<<endl;
相似回答
如何用C语言
实现
2的
n次方
答:
unsigned int x = 1<<n;但要注意直接计算2的n次方很容易溢出,比如直接左移以及直接乘都要求小于32次方,还得是x声明为unsigned的前提下,否则最多能左移16位,超过之后就溢出了 如果要实现超过32次方,需要定义为更大的数据类型,或者直接用字符数组存储,实现大整数的运算 ...
c语言
编程中
如何
输入
幂
次方
答:
pow() 函数用来求 x 的 y 次幂(次方)pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 ret = xy。3、举例如下:double a = pow(4, 2); // 计算4的平方 4、可能导致错误的情况:如果底数 x 为负数并且指数 y 不
是整数,
将会导致 domain error 错误。如果底...
x&(x-
1
)?"yes":"no" 这句表达式能
判断
x
是否是一个2的幂
么?
答:
2的整数
次幂都是“分界线”。分界线可好哟,这说明分界线的数 减去1后 它所对应的二进制数就少了1位 比如8(1000)减去1,变成7(111),从4位变成3位了 为了把7凑成跟8一样的4个二进制位 ,我们在前边补0 就是 7(0111)此时,8&7 ,进行位与运算,由于4个二进位都是1和0的与,结果...
c语言
中次方运算符
是
什么?
答:
pow()函数表示几次方:pow()函数
是C语言
中一个常用的数学函数,用于计算一个数的幂次方。该函数的原型是:double pow(double x, double y)。其中,x表示底数,y表示指数,函数返回值为x的y次方。2的3次方可以表示为pow(2, 3),代码为:double result = pow(2, 3)。该代码的结果为8.0,...
c语言
pow函数
怎么用
答:
C语言
中pow函数的使用 在C语言中,pow函数是用于计算一个数的幂的函数。它是数学库中的一个函数。使用pow函数,可以轻松地进行乘方运算。使用步骤:1. 引入数学库:在使用pow函数之前,需要在程序的开头引入头文件。2. 调用pow函数:使用pow函数时,需要指定两个参数,分别是底数和指数。例如,要计算2...
c语言幂
次方
怎么
表示的
答:
C语言
中计算一个数的N次方可以用库函数pow来实现。函数原型:double pow(double x, double y)。举例如下:double a = pow(3.14, 2); // 计算3.14的平方。注:使用pow函数时,需要将头文件#includemath.h包含进源文件中。
C语言
中
怎么
计算
一个
数的平方?
答:
可以用b=a*a来算,也可以用math库的pow函数来算 要用pow首先要包含头文件 #include <math.h> 然后调用pow函数 double pow( double base, double exp );函数返回以base为底的exp次,不允许的取值范围:当base 为 0 且exp 小于或等于 0 当base 为 负数 且 exp 不为整数 ...
cf思维训练篇(11).div2(萌新向)
答:
那么,现在我们的结论升级为:当m是2的整数次幂时,一定可以平均分配。现在的问题转换为:判断m
是否是2的整数
次幂。这里简单介绍__builtin_popcount()方法:该函数的作用是返回二进制数字中“1”的个数。利用二进制原理,我们容易知道,当二进制数字中仅
有一个1
时,它表示的
是2的幂次
。因此,可以通过...
C语言
中
怎么
计算
一个
数的平方?
答:
^是异或运算符,千万不要用错!平方的话可以直接两个数相乘,b = a * a;如果多次方的话需要调用数学库的函数pow,b = pow(a,2); 使用函数需要#include<math.h>
大家正在搜
怎样判断一个数是否为整数
输入一个整数判断是否为素数
java判断一个数是不是整数
判断一个数是整数
如何判断一个数是不是素数
如何判断是否为整数
自然数是整数吗判断
整数一定是自然数
如何用if语句判断条件
相关问题
给出一行C语言表达式,判断给定的整数是否是一个2的幂
用C语言如何简单的判断一个数是否是2的整数次幂?
一语句实现x是否为2的若干次幂的判断,用C语言,或汇编。。多...
判断一个数是否为整数,用C++怎样算?
c++判断一个整数是否为2的幂
用C语言实现一语句实现x是否为2的若干次幂的判断
c语言:判断一个整数是不是2的整数次方
判断一个整数是不是2的幂