不用”if“,”?:“,”switch“或其他判断语句,求两个数中较大的数或较小的数

2024-08-28 04:32

本文主要是介绍不用”if“,”?:“,”switch“或其他判断语句,求两个数中较大的数或较小的数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下五种方法分别求出较大的数和较小的数的方法。较小数的代码在注释中,但未运行测试。

int Find1(int a, int b) {return ((a + b) + abs(a - b)) / 2;//return ((a + b) - abs(a - b)) / 2;
}/*
当a大于b时,a-b为正,右移sizeof(int) * 8 - 1后,最右侧一位为0,0^1 = 0;
当a小于b时,a-b为负,右移后最右侧一位为1,1^1 = 1
*/
int Find21(int a, int b) {int c[2] = {a, b};int z = a - b;z = (z >> (sizeof(int) * 8 - 1)) & 1;return c[z];/*int c[2] = {b, a};int z = a - b;z = (z >> (sizeof(int) * 8 - 1)) & 1;return c[z];*/
}int Find22(int a, int b) {int flag = ((a - b) >> (sizeof(int) * 8 - 1)) & 1;return (a - (a - b) * flag);//return (b - (b - a) * flag);
}int Find3(int a, int b) {int c[2] = {a, b};return c[a < b];//return c[a > b];
}/* 该方法对于两个数均为负数的情况以及有数为0的情况没法处理,但这里也列出该方法。a<b时,a/b=0,所以被除数为b*(b/a),除数为b/a,结果是b a=b时,a/b=1,所以被除数为a+b=2a,除数为2,结果是a a>b时,b/a=0,所以被除数为a*(a/b),除数为a/b,结果是a */  int Find4(int a, int b)  {  int larger = (a*(a/b) + b*(b/a))/(a/b + b/a);  //long smaller = (b*(a/b) + a*(b/a))/(a/b + b/a);  return larger;  }  int main() {int a, b;while (1) {cin >> a >> b;cout << Find1(a, b) << " ";cout << Find21(a, b) << " ";cout << Find22(a, b) << " ";cout << Find3(a, b) << " ";cout << Find4(a, b) << endl;}
}


这篇关于不用”if“,”?:“,”switch“或其他判断语句,求两个数中较大的数或较小的数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113733

相关文章

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

MySQL ORDER BY 语句常见用法、示例详解

《MySQLORDERBY语句常见用法、示例详解》ORDERBY是结构化查询语言(SQL)中的关键字,隶属于SELECT语句的子句结构,用于对查询结果集按指定列进行排序,本文给大家介绍MySQL... 目录mysql ORDER BY 语句详细说明1.基本语法2.排序方向详解3.多列排序4.常见用法示例5.

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin