货物立方数怎么算是怎么算的?

如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方?
字体:[ ] 类型:转载 时间:
本篇文章是对如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方的实现方法,进行了详细的分析介绍,需要的朋友参考下
将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0; 因此问题可以转化为判断1后面是否跟了n个0就可以了。如果将这个数减去1后会发现,仅有的那个1会变为0,而原来的那n个0会变为1;因此将原来的数与去减去1后的数字进行与运算后会发现为零。最快速的方法:(number & number - 1) == 0原因:因为2的N次方换算是二进制为10……0这样的形式(0除外)。与上自己-1的位数,这们得到结果为0。例如。8的二进制为=7,7的二进制为111。两者相与的结果为0。计算如下:1000& 0111-------0000使用递归来实现的代码如下: 代码如下:#include "stdio.h"#include "stdlib.h"int log2(int value)&& //递归判断一个数是2的多少次方{&if (value == 1)&&return 0;&else&&return 1+log2(value&&1);}int main(void){&&printf("请输入一个整数:");&scanf("%d",&num);&if(num&(num-1))& //使用与运算判断一个数是否是2的幂次方&&printf("%d不是2的幂次方!\n",num);&else&&printf("%d是2的%d次方!\n",num,log2(num));&system("pause");&return 0;}使用非递归来实现的代码如下: 代码如下:#include "stdio.h"#include "stdlib.h"int log2(int value)&& //非递归判断一个数是2的多少次方{&int x=0;&while(value&1)&{&&value&&=1;&&x++;&}&}int main(void){&&printf("请输入一个整数:");&scanf("%d",&num);&if(num&(num-1))&&&& //使用与运算判断一个数是否是2的幂次方&&printf("%d不是2的幂次方!\n",num);&else&&printf("%d是2的%d次方!\n",num,log2(num));&system("pause");&return 0;}扩展:求一个数n的二进制中1的个数。非常巧妙地利用了一个性质,n=n&(n-1) 能移除掉n的二进制中最右边的1的性质,循环移除,直到将1全部移除,这种方法将问题的复杂度降低到只和1的个数有关系。代码如下: 代码如下:int Func3(int data){&& //利用了data&(data-1)每次都能移除最右边的1,移除了多少个1,就是包含了几个1&int count = 0;&while (data)&{&&data = data & (data-1);&&count++;&}&}扩展问题二:A和B的二进制中有多少位不相同。这个问题可以分为两步,(1)将A和B异或得到C,即C=A^B,(2)计算C的二进制中有多少个1。
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具体积公式要求方数怎么算
体积公式要求方数怎么算
09-11-09 &匿名提问
圆柱体的体积公式:体积=底面积×高 ,如果用h代表圆柱体的高,则圆柱=S底×h   长方体的体积公式:体积=长×宽×高   如果用a、b、c分别表示长方体的长、宽、高则  长方体体积公式为:V长=abc   正方体的体积公式:体积=棱长×棱长×棱长.   如果用a表示正方体的棱长,则  正方体的体积公式为V正=a·a·a=a³  锥体的体积=底面面积×高÷3 V 圆锥=S底×h÷3  台体体积公式:V=[ S上+√(S上S下)+S下]h÷3  圆台体积公式:V=(R²+Rr+r²)hπ÷3  球缺体积公式=πh²(3R-h)÷3  球体积公式:V=4πR³/3  棱柱体积公式:V=S底面×h=S直截面×l (l为侧棱长,h为高)  棱台体积:V=〔S1+S2+开根号(S1*S2)〕/3*h   注:V:体积;S1:上表面积;S2:下表面积;h:高。  ------  几何体的表面积计算公式  圆柱体:   表面积:2πRr+2πRh 体积:πRRh (R为圆柱体上下底圆半径,h为圆柱体高) 圆锥体:   表面积:πRR+πR[(hh+RR)的平方根] 体积: πRRh/3 (r为圆锥体低圆半径,h为其高, 平面图形   名称 符号 周长C和面积S   正方形 a—边长 C=4a S=a2 长方形 a和b-边长 C=2(a+b) S=ab 三角形 a,b,c-三边长h-a边上的高s-周长的一半A,B,C-内角其中   s=(a+b+c)/2 S=ah/2=ab/2·sinC =[s(s-a)(s-b)(s-c)]1/2=a2sinBsinC/(2sinA) 四边形 d,D-对角线长α-对角线夹角 S=dD/2·sinα 平行四边形 a,b-边长h-a边的高α-两边夹角 S=ah=absinα 菱形 a-边长α-夹角D-长对角线长d-短对角线长 S=Dd/2=a2sinα 梯形 a和b-上、下底长h-高m-中位线长 S=(a+b)h/2=mh 圆 r-半径 d-直径 C=πd=2πr S=πr2=πd2/4 扇形 r—扇形半径 a—圆心角度数 C=2r+2πr×(a/360) S=πr2×(a/360) 弓形 l-弧长 S=r2/2·(πα/180-sinα)   b-弦长 =r2arccos[(r-h)/r] - (r-h)(2rh-h2)1/2   h-矢高 =παr2/360 - b/2·[r2-(b/2)2]1/2   r-半径 =r(l-b)/2 + bh/2   α-圆心角的度数 ≈2bh/3 圆环 R-外圆半径 S=π(R2-r2)   r-内圆半径 =π(D2-d2)/4   D-外圆直径
请登录后再发表评论!
圆柱体的体积公式:体积=底面积×高 ,如果用h代表圆柱体的高,则圆柱=S底×h   长方体的体积公式:体积=长×宽×高   如果用a、b、c分别表示长方体的长、宽、高则  长方体体积公式为:V长=abc   正方体的体积公式:体积=棱长×棱长×棱长.   如果用a表示正方体的棱长,则  正方体的体积公式为V正=a·a·a=a³  锥体的体积=底面面积×高÷3 V 圆锥=S底×h÷3  台体体积公式:V=[ S上+√(S上S下)+S下]h÷3  圆台体积公式:V=(R²+Rr+r²)hπ÷3  球缺体积公式=πh²(3R-h)÷3  球体积公式:V=4πR³/3  棱柱体积公式:V=S底面×h=S直截面×l (l为侧棱长,h为高)  棱台体积:V=〔S1+S2+开根号(S1*S2)〕/3*h   注:V:体积;S1:上表面积;S2:下表面积;h:高。  ------  几何体的表面积计算公式  圆柱体:   表面积:2πRr+2πRh 体积:πRRh (R为圆柱体上下底圆半径,h为圆柱体高) 圆锥体:   表面积:πRR+πR[(hh+RR)的平方根] 体积: πRRh/3 (r为圆锥体低圆半径,h为其高, 平面图形   名称 符号 周长C和面积S   正方形 a—边长 C=4a S=a2 长方形 a和b-边长 C=2(a+b) S=ab 三角形 a,b,c-三边长h-a边上的高s-周长的一半A,B,C-内角其中   s=(a+b+c)/2 S=ah/2=ab/2·sinC =[s(s-a)(s-b)(s-c)]1/2=a2sinBsinC/(2sinA) 四边形 d,D-对角线长α-对角线夹角 S=dD/2·sinα 平行四边形 a,b-边长h-a边的高α-两边夹角 S=ah=absinα 菱形 a-边长α-夹角D-长对角线长d-短对角线长 S=Dd/2=a2sinα 梯形 a和b-上、下底长h-高m-中位线长 S=(a+b)h/2=mh 圆 r-半径 d-直径 C=πd=2πr S=πr2=πd2/4 扇形 r—扇形半径 a—圆心角度数 C=2r+2πr×(a/360) S=πr2×(a/360) 弓形 l-弧长 S=r2/2·(πα/180-sinα)   b-弦长 =r2arccos[(r-h)/r] - (r-h)(2rh-h2)1/2   h-矢高 =παr2/360 - b/2·[r2-(b/2)2]1/2   r-半径 =r(l-b)/2 + bh/2   α-圆心角的度数 ≈2bh/3 圆环 R-外圆半径 S=π(R2-r2)   r-内圆半径 =π(D2-d2)/4   D-外圆直径
请登录后再发表评论!
圆柱体的体积公式:体积=底面积×高 ,如果用h代表圆柱体的高,则圆柱=S底×h   长方体的体积公式:体积=长×宽×高   如果用a、b、c分别表示长方体的长、宽、高则  长方体体积公式为:V长=abc   正方体的体积公式:体积=棱长×棱长×棱长.   如果用a表示正方体的棱长,则  正方体的体积公式为V正=a·a·a=a³  锥体的体积=底面面积×高÷3 V 圆锥=S底×h÷3  台体体积公式:V=[ S上+√(S上S下)+S下]h÷3  圆台体积公式:V=(R²+Rr+r²)hπ÷3  球缺体积公式=πh²(3R-h)÷3  球体积公式:V=4πR³/3  棱柱体积公式:V=S底面×h=S直截面×l (l为侧棱长,h为高)  棱台体积:V=〔S1+S2+开根号(S1*S2)〕/3*h   注:V:体积;S1:上表面积;S2:下表面积;h:高。  ------  几何体的表面积计算公式  圆柱体:   表面积:2πRr+2πRh 体积:πRRh (R为圆柱体上下底圆半径,h为圆柱体高) 圆锥体:   表面积:πRR+πR[(hh+RR)的平方根] 体积: πRRh/3 (r为圆锥体低圆半径,h为其高, 平面图形   名称 符号 周长C和面积S   正方形 a—边长 C=4a S=a2 长方形 a和b-边长 C=2(a+b) S=ab 三角形 a,b,c-三边长h-a边上的高s-周长的一半A,B,C-内角其中   s=(a+b+c)/2 S=ah/2=ab/2·sinC =[s(s-a)(s-b)(s-c)]1/2=a2sinBsinC/(2sinA) 四边形 d,D-对角线长α-对角线夹角 S=dD/2·sinα 平行四边形 a,b-边长h-a边的高α-两边夹角 S=ah=absinα 菱形 a-边长α-夹角D-长对角线长d-短对角线长 S=Dd/2=a2sinα 梯形 a和b-上、下底长h-高m-中位线长 S=(a+b)h/2=mh 圆 r-半径 d-直径 C=πd=2πr S=πr2=πd2/4 扇形 r—扇形半径 a—圆心角度数 C=2r+2πr×(a/360) S=πr2×(a/360) 弓形 l-弧长 S=r2/2·(πα/180-sinα)   b-弦长 =r2arccos[(r-h)/r] - (r-h)(2rh-h2)1/2   h-矢高 =παr2/360 - b/2·[r2-(b/2)2]1/2   r-半径 =r(l-b)/2 + bh/2   α-圆心角的度数 ≈2bh/3 圆环 R-外圆半径 S=π(R2-r2)   r-内圆半径 =π(D2-d2)/4   D-外圆直径
请登录后再发表评论!

我要回帖

更多关于 物流方数怎么算 的文章

 

随机推荐