IF 没有 IF (由“不使用IF等条件判断,输出两个数中大的那个”产生的一些随想)
来源:互联网 发布:jar格式软件 编辑:程序博客网 时间:2024/05/16 07:16
昨天偶然看到一道很有趣的题,题目是这样的:怎么样在不使用任何IF等判断语句以及三目运算符等判断方法,来输出两个数中大的那个数。
被这样突然一限制思维,觉得好像无从下手,心里想着,这怎么做?纠结了一会儿,然后静下心来开始用笔画,用最原始的数学方法去解决,然后很快想出了解决的方法,下面是代码:
import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner in = new Scanner(System.in);System.out.println("Please Input two number:");float a=in.nextFloat();float b=in.nextFloat();System.out.println((a+b+Math.abs(a-b))/2);}}虽然是一个小小的问题,觉得很有意思,提醒了我思想才是最重要的基础,不能因为学习了各种语言就把思想忘记了,所以我今天开了一个新的博客类别叫"Thinking In."。
然后去看了一下答案,答案中提供了另一种方法,也很好理解,就是利用两个数相减的符号位来判断,我将它实现了一下,代码如下:
import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner in = new Scanner(System.in);System.out.println("Please Input two number:");float a = in.nextFloat();float b = in.nextFloat();float[] output = new float[2];output[0]=a;output[1]=b;int c = (int) (a-b) >>> 31;System.out.println(output[c]);}}但是很遗憾的是,因为JAVA自身的位运算只支持int型的数,所以如果是整数部分相等的浮点数,则没办法判断出大小来。怎么样,没有IF的世界也可以很有趣吧!
- IF 没有 IF (由“不使用IF等条件判断,输出两个数中大的那个”产生的一些随想)
- 如何不使用任何判断"if","switch"等来得到两个数之间较大的数
- 一道腾讯的笔试题,不使用任何判断语句求出两个数中的较大者(即 if、if...else...、>、<、==、while等语句)
- 不使用if,switch and 等值判断 求出两个int数中最大的那个数详解
- 输入任意大小的三个整数,判断其中是否有两个奇数一个偶数。若是,则输出“YES”,不是则输出“NOT” (要求用条件表达式进行判断,不使用if语句)
- 【面试题】不用if,条件表达式,switch等判断语句------找出两个数中较大的
- 一些基本的IF判断。
- 条件编译的使用...#if...
- struts2 s:if 多条件判断#的使用
- 一个if 判断条件的常见错误
- if条件判断上的bug
- js中if的条件判断
- jst中,if的判断条件
- 【shell】脚本中if条件的判断
- 赋值语句作为if的判断条件
- mybatis的<if test> 条件判断
- mybatis的<if test> 条件判断
- if条件的比较
- linux设备驱动学习(3) 字符设备驱动程序
- sikuli 安装运行 集成进MyEclipse 新手教程
- 品牌与广告
- (未完)C++异常处理
- CentOS + Nginx + PHP + MySQL 环境搭建
- IF 没有 IF (由“不使用IF等条件判断,输出两个数中大的那个”产生的一些随想)
- ubuntu增加swap分区
- Android中级进阶FAQ
- 数据存储过程有点
- 几个简单的css实现菜单
- android anr
- Android 调用相册 拍照 实现系统控件缩放 切割图片
- 谷歌收购MOTO移动技术将掀开移动互联网大战帷幕
- 检测是否是虚拟机