求两个数的平均值,不能只用(a+b)/2的方法
#include<stdio.h> int avg1(int a, int b)
{
//利用移位操作符
//右移移位相当于——>除以2 :(a+b)>>1
//考虑到溢出情况:1.可以增加字节的大小将4个字节变为8个字节
return a + ((b - a) >> );
} int avg2(int a, int b)
{
//2.a&b+(a^b)>>1 8: 1000
//a&b(取出了相同位的平均值),例如 2:0010&1110——>0010 相同的位数保存为1,不同的位数保存为0
//a^b(取出了不同位的和),例如 14:0010^1110——>1100 相同的位数保存为0,不同的位数保存为1
return (a&b) + ((a^b) >> );
} int main()
{
int a, b;
scanf("%d %d",&a,&b);
printf("%d\n", avg1(a, b));
printf("%d\n", avg2(a, b));
return ;
}
求两个数的平均值,不能只用(a+b)/2的方法的更多相关文章
- Java求两个数平均值
		
如何正确的求2个数的平均值.在练习算法二分查找的时候发现的,以前没有注意到的bug 备注:数据以int类型为例 一.以前的通用写法 /** * 求a+b平均值 * @param a * @param ...
 - 求两个数的最大公约数(Euclid算法)
		
求两个数 p 和 q 的最大公约数(greatest common divisor,gcd),利用性质 如果 p > q, p 和 q 的最大公约数 = q 和 (p % q)的最大公约数. 证 ...
 - 求两个数中的较大值max(a,b)。(不用if,>)
		
题目:求两个数的较大值,不能使用if.>. 1.不使用if.>,还要比较大小,貌似就只能使用条件表达式: x=<表达式1>?<表达式2>:<表达式3>; ...
 - 求两个数a、b的最大公约数
		
//求两个数a.b的最大公约数 function gcd(a,b){ return b===0?a:gcd(b,a%b) }
 - c语言实践:求两个数的最大公约数
		
我的思路是这样的:比如12和16这两个数.先理解一下概念,什么叫最大公约数.就是12有很多个因数,16也有很多个因数,这两堆因数中有一些重合的因数,在这些重合的因数中找到那个最大的.那么最大公约数一定 ...
 - 【C语言】求两个数中不同的位的个数
		
//求两个数中不同的位的个数 #include <stdio.h> int count_different(int a, int b) { int count = 0; int c = a ...
 - python 函数求两个数的最大公约数和最小公倍数
		
1. 求最小公倍数的算法: 最小公倍数 = 两个整数的乘积 / 最大公约数 所以我们首先要求出两个整数的最大公约数, 求两个数的最大公约数思路如下: 2. 求最大公约数算法: 1. 整数A对整数 ...
 - java求两个数中的大数
		
java求两个数中的大数 java中的max函数在Math中 应用如下: int a=34: int b=45: int ans=Math.max(34,45); 那么ans的值就是45.
 - 求两个数的最大公约数&求N个数的最大公约数
		
一.求两个数的最大公约数 如何编程计算N个数的最大公约数(Greatest common divisor)呢?第一想法那便是两两计算,但是往往最简单的想法是不怎么靠谱的.下面用递归来解决.递归有一大好 ...
 
随机推荐
- 3.6 C++继承机制下的构造函数
			
参考:http://www.weixueyuan.net/view/6363.html 总结: 在codingbook类中新增了一个language成员变量,为此必须重新设计新的构造函数.在本例中bo ...
 - Centos7部署kubernetes Proxy(七)
			
1.配置kube-proxy使用LVS(三个节点都装上去) [root@linux-node1 ssl]# yum install -y ipvsadm ipset conntrack [root@l ...
 - Linux文件系统命令 pwd
			
命令名:pwd 功能:查看当前所处的位置 eg: renjg@renjg-HP-Compaq-Pro--MT:~$ pwd /home/renjg renjg@renjg-HP-Compaq-Pro- ...
 - 2019.2.13 SW
 - Vue extend 学习
			
<div id="box"> <aa></aaa> </div> <script> var Aaa = Vue.exte ...
 - javascript性能优化之避免重复工作
			
javascript最重要也最根本的性能优化标准之一是避免工作,避免工作又包括两点,第一,不做不必要的工作,第二,不做重复的已经完成的工作.第一部分可以通过代码重构完成,第二部分不做重复的工作有时候难 ...
 - hph 缓存机制
			
bufferbuffer是一个内存地址空间,Linux系统默认大小一般为4096(4kb),即一个内存页.主要用于存储速度不同步的设备或者优先级不同的设备之间传办理数据的区域.通过buffer,可以使 ...
 - Delphi 10.3.1来了
			
10.3.1发布了,这个版本可以独自安装,是对Delphi 10.3 Rio,C ++ Builder 10.3 Rio和RAD Studio 10.3 Rio的更新.如果安装了2018年11月发布的 ...
 - iOS原生和React-Native之间的交互1
			
今天,记录一下iOS原生和React-Native之间的交互.如果第一次接触最好先移步至 http://www.cnblogs.com/shaoting/p/6388502.html 先看一下怎么在i ...
 - HTTP Security Header Not Detected未检测到HTTP安全标头
			
遇到此安全问题,只需修改Web.config文件. 如: 未处理之前配置代码如下: <httpProtocol> <customHeaders> <add name=&q ...