不使用if、?:、switch及其他判断语句如何找出两个int型变量中的最大值和最小值
来源:互联网 发布:农村淘宝服务站利润 编辑:程序博客网 时间:2024/06/07 20:02
不使用if、?:、switch及其他判断语句如何找出两个int型变量中的最大值和最小值
方法一:利用绝对值的方法
int max = ((a+b)+abs(a-b))/2int min = ((a+b)-abs(a-b))/2
如果a>b,则max = a;如果a<b,则max= b.
方法二:对变量的差值进行位移操作,通过其是否为非0值确定两个变量的大小
int a = 3;int b = 4;int c = a - b;int max = (unsigned)c >> (sizeof(int) * 8 - 1);if (!max) cout << a << endl;else cout << b << endl;
输出结果为:4
方法三:通过加减运算与位移运算结合的方式实现
int a = 3;int b = 4;int min = a + (((b - a) >> 31) & (b - a));int max = a - (((a - b) >> 31)&(a - b));cout << min << " " << max << endl;
输出结果为:3 4
1 0
- 不使用if、?:、switch及其他判断语句如何找出两个int型变量中的最大值和最小值
- 找出两个int型变量的最大值和最小值,不使用if/:?/switch判断语句
- 有两个变量a和b,不用“if”、“? :”、“switch”或其他判断语句,找出两个数中比较大的
- 关于不用if,switch,?:语句判断两个数大小及其他
- 关于不用if,switch,?:语句判断两个数大小及其他
- 有两个变量a 和 b,不用if、?: 、switch 或者其他判断语句,找出两个数中比较大的那个
- 有两个变量a,b不用if ?: switch或其他判断语句找出两个数中比较大的数
- 两个变量a,b,不用“if”,“? :”,switch或者其它判断语句,找出两个数中间比较大的
- 两个整数型,不准用while、if、for、switch等判断语句 求出两者最大值
- 两个数判断大小(不能用 if, switch, ?, 和其他判断语句)
- 使用异或运算和与运算求取二者最大值和最小值(不使用判断语句求二者最小值)
- 如何不使用任何判断"if","switch"等来得到两个数之间较大的数
- 不使用if,switch and 等值判断 求出两个int数中最大的那个数详解
- 【面试题】不用if,条件表达式,switch等判断语句------找出两个数中较大的
- 求两个整数的最大值,不使用判断语句
- 不使用 if switch 等 求出两个变量中的较大或(较小)的一个 11月13日
- 0006不使用判断语句求二者中的最小值
- 使用if语句来判断最大值
- Echarts 数据可视化图表库 Overview
- 再探java基础——throw与throws
- 【最小生成树】(模板-prim算法)poj 1258
- AndroidStudio 获取SHA1值
- 设计模式之职责链模式
- 不使用if、?:、switch及其他判断语句如何找出两个int型变量中的最大值和最小值
- CPU卡程序设计实例(二十五)ESAM过程密钥内部认证
- Android下Device Tree简介
- [排序] 计数排序
- scala 完美中文教程
- CPU卡程序设计实例(二十六)卡和ESAM之间外部认证
- 问题8.3.1 棋盘覆盖问题(分治)
- switch条件语句
- Django 快速构建网站利器 Overview