C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?
题目
C++:为什么算平均数还可以用以下算法呢?这个是什么原理呢?
((x
^ y) >> 1) + (x & y);
/*(x^y)
>> 1得到x,y其中一个为1的位并除以2,x&y得到x,y都为1的部分,加一起就是平均数了*/
求大神指点
答案
x和y对应位有2种情况:相同或者不相同.求平均数只需要把不同的部分相加除以2再加上相同的部分就行了.首先考虑相同的部分,同为0没有用,x&y得出了同为1的部分.然后考虑不同的部分^按位异或 若参加运算的两个二进制位值...
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点
- 二氯甲烷为什么没有同分异构(关于有机化学的3个问题)
- take的主语可以是人
- 一个无盖的长方体油箱,油箱的底面是边长6.5分米的正方形,2米,至少要用铁皮多少平方米?
- 堆一堆苹果分给8个小朋友,每个小朋友分7个,还剩下2个,还需要几个可以让每个小朋友多分到一个苹果?
- what is the most serious problem facing the world?why?how can this be fixed
- 用直径为4cm的圆钢,造三个直径为2cm,高为16cm的圆柱形零件,则需要截取长为多少厘
- 一筐鲜鱼连筐共重120千克,先卖出鲜鱼的一半,再卖出剩下的一半,剩下的鱼连筐共
- ∮1/cosz dz 积分路径为单位圆
- 改错啊,标点符号也要改,挺多的.
- 望着这座岛群雕,就仿佛看到了当年丝绸之路上商旅不觉的景象,仿佛听到了飘忽在大漠中的悠悠驼铃声……