-
简化代码——判断一个整数是否为奇数
2019-03-19 17:25:23简化代码——判断一个整数是否为奇数判断一个整数是否为奇数一般情况 判断一个整数是否为奇数 一般情况 学过Java的同学都知道判断一个整数是否时奇数极为简单。别急,相信大部分同学都是这样编写的: public class ...简化代码——判断一个整数是否为奇数
判断一个整数是否为奇数
一般情况
学过Java的同学都知道判断一个整数是否时奇数极为简单。别急,相信大部分同学都是这样编写的:
public class xiaogao { static boolean judge(int i) { if (i % 2 == 1) return true; else return false; } public static void main(String[] args){ int i=3; if(judge(i)) System.out.print("奇数"); else System.out.print("偶数"); } }
这就是最简的代码了么? 我们都知道功能相同情况下,代码越简洁越好
从上面代码可以看出函数定义的是布尔值,这样我们就可以将代码简单优化一下:public class xiaogao { static boolean judge(int i) { return i%2==1; } public static void main(String[] args){ int i=2; if(judge(i)) System.out.print("奇数"); else System.out.print("偶数"); } }
让我们看看上面的代码有没有问题?
你们有没有发现,如果i值为负数呢?
这时我们再将它修改下:public class xiaogao { static boolean judge(int i) { return i%2!=0; } public static void main(String[] args){ int i=2; if(judge(i)) System.out.print("奇数"); else System.out.print("偶数"); } }
然而,这就是最简了么?
假设这时客户觉得取模操作比较慢,有什么更快的方法么?
对C语言有较深入体会的人会想到二进制,对。就是移位操作。public class xiaogao { static boolean judge(int i) { return (i&1)==1; } public static void main(String[] args){ int i=2; if(judge(i)) System.out.print("奇数"); else System.out.print("偶数"); } }
这样取模是不是就快了?
理论上是快了,但实际代码运行的时间是差不多的,那我们为什么要用移位运算呢?
当我们在执行逻辑位操作时使用移位运算符,而不是数学运算。 它可用于速度,在处理2的幂的操作数时明显快于除法/乘法,但代码的清晰度通常优于原始速度。同时它也可用于加密、解密。
-
java判断bigdecimal是否为空_很火的Java题——判断一个整数是否是奇数
2020-12-02 09:15:30完成以下代码,判断一个整数是否是奇数:public boolean isOdd(int i)看过《编程珠玑》的人都知道这道题的答案和其中极为简单的道理。最普遍的风格,如下:这个函数的定义要求返回一个布尔类型的值。而 if 后面的...完成以下代码,判断一个整数是否是奇数:
public boolean isOdd(int i)
看过《编程珠玑》的人都知道这道题的答案和其中极为简单的道理。
最普遍的风格,如下:
这个函数的定义要求返回一个布尔类型的值。而 if 后面的括号里面的表达式的值也是一个布尔类型的。由此,可进行如下改进:
奇数可以分为正奇数和负奇数。奇数的数学表达形式为 2k+1 (k≠0)。由此,优化如下:
简单分析,做出如下改进:
右移一位相当于该数除以2,右移2位相当于该数除以4,结果没有小数位,都是取整。
左移一位相当于该数乘以2,左移2位相当于该数乘以2^2=4。
位运算:某数除以2,再乘以2不等于该数,说明该数为奇数:
=== and运算 ===
and运算通常用于二进制的取位操作。一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。代码如下:
-
判断一个数是否为奇数
2013-11-26 13:34:16写一段判断奇数的代码,对大家而言都是很简单的事。但并不是所有人都能注意到其中的陷阱。例如下面的一个方法: public static boolean isOdd(int i){ return i%2==1; } 这段代码初看是没有问题的,但是运行...写一段判断奇数的代码,对大家而言都是很简单的事。但并不是所有人都能注意到其中的陷阱。例如下面的一个方法:
public static boolean isOdd(int i){
return i%2==1;
}这段代码初看是没有问题的,但是运行后却发现它存在着一个bug,那就是无法正确判断负整数的奇偶性。如果输入-3这一奇数,它会返回false。将代码改为下面这样:
public static boolean isOdd(int i){
return i%2!=0;
}这样就可以避免对负整数的误判。
-
C++入门经典-例3.1-判断输入的数字是否为奇数
2017-09-11 19:29:00C++入门经典-例3.1-判断输入的数字是否为奇数 1:代码如下: // 3.1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; void main() { int i...C++入门经典-例3.1-判断输入的数字是否为奇数
1:代码如下:
// 3.1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; void main() { int iInput; cout << "输入一个整数" << endl; cin >> iInput; //输入一整型数 if(iInput%2!=0) cout << "这个整数是奇数" << endl; }
View Code
运行结果:
-
判断一个int类型的数是否为奇数
2011-03-30 14:51:00//以下的代码没有考虑到负数的情况,所有负奇数判断结果都是错误的,所以有1/4的结果都是错误的。 public static boolean isOdd(int i){return i%2==1;}//修改方法1:如果int类型的数对2取余,结果不等于0,那么... -
判断整数_很火的Java题——判断一个整数是否是奇数
2021-01-12 09:33:47完成以下代码,判断一个整数是否是奇数:public boolean isOdd(int i)看过《编程珠玑》的人都知道这道题的答案和其中极为简单的道理。最普遍的风格,如下:这个函数的定义要求返回一个布尔类型的值。而 if 后面的... -
Java判断一个整数是否为奇数
2009-02-12 10:36:20如下面的代码所示: public class isOdd { public static void main(String[] args) { int a = 3; int b = -3; //方法1 System.out.println((a % 2) != 0); System.out.println((b % 2) != 0); ... -
奇数的判断
2020-04-08 15:49:531.判断一个数是否为奇数 代码: #include <stdio.h> #include <Windows.h> #pragma warning (disable:4996) int Odd(int _data) { if (_data % 2 == 1) { return 1; } else return 0; //(1)... -
Python 判断奇数偶数的方法
2020-12-23 13:36:09以下实例用于判断一个数字是否为奇数或偶数: # -*- coding: UTF-8 -*- # Filename : test.py # Python 判断奇数偶数 # 如果是偶数除于 2 余数为 0 # 如果余数为 1 则为奇数 num = int(input("输入一个数字: ")) if... -
python 判断数字是奇数还是偶数
2019-04-23 11:10:55num=int(input('输入一个整数:')) #判断输入是否为整数 except ValueError: #不是纯数字需要重新输入 print("输入的不是整数!") continue if num%2==0: print('偶数') else: ... -
java简单的判断奇偶数方法(i & 1) != 0 i为奇数
2015-06-04 00:19:36今天找提高代码性能的方法,刚好看到这篇文章里... 奇偶判断不要使用 i % 2 == 1 来判断是否是奇数,因为i为负奇数时不成立,请使用 i % 2 != 0 来判断是否是奇数,或使用高效式 (i & 1) != 0来判断。 想着今... -
Miller-Rabin算法判断是否为素数--python代码实现--利用了快速求幂取余的方法
2020-05-06 23:44:30判断一个数P是否的素数的一般方法: 方法1:k从2开始,到n-1为止,判断P是否可以整除k 改进1:k到sqrt(P)为止 改进2:k从3开始且只考虑奇数 时间复杂度:O(P) 一个更快的算法:Miller-Rabin算法 实现:在2-P-... -
位运算方法判断是否为2的幂次和4的幂次
2020-07-03 15:02:501. 判断n是否为2的幂次: n&(n-1)==0 解释: n的二进制中最为1,低于该位的均为0 n-1的二进制中最高位为0,低于该位的均为1 python代码: class Solution: def isPowerOfTwo(self, n: int) -> bool: ... -
判断正整数是否为2的某次幂,且是否为4的某次幂
2019-10-04 11:38:31题目:判断正整数是否为2的某次幂,且是否为4的某次幂 ...而2的偶数次幂就必定为4的某次幂,即当一个数为2的2k次幂时,也是4的k次幂,由此可同时判断是否为4的某次幂。 具体代码如下: import java... -
如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方?
2021-01-21 18:01:32将4的幂次方写成二进制形式...思路:首先用条件num & num-1==0来判断是否为2的幂次方,若不满足,则不是。若满足,在用条件num & 0x55555555来判断,若为真,则这个整数是4的幂次方,否则不是。使用递归来实现的代码如 -
C++版本判断点是否落入多边形内原理讲解及代码实现
2020-07-09 22:24:20判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。 1.3射线法 从目标点出发引一条射线,看这条射线和多边形所有边的交点数目: (1)如果有奇数个交点,则说明在内部; (2)如果有偶数个交点,则... -
PHP初学者-作业-关于奇偶数的讨论-输出奇数或是偶数-一些有趣的判断
2019-03-09 10:49:48如何获得一定范围内的所有偶数或者奇数, 虽然这并不难,但我还是要些写出来: 如上图所示,其中: ...若把判断念出来,即,i除2后是否余0,如果是0,则为偶数,若不等于0,则为奇数。 好吧,有点复杂... -
判断点是否在多边形内 (附C实现代码)
2018-03-26 15:05:00(2)夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。 (3)引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。如果有奇数个交点,则说明在内部,如果有偶数... -
判断一点是否在多边形内(附Java实现代码)
2020-05-04 00:36:40引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数射线法 时间复杂度:O(n) 适用范围:任意...如果为奇数,Q在多边形内;如果为偶数,Q在多边形外。计数的时候会有一些特殊情况,如图 Java实... -
判断一个自然数是否为质数的算法
2013-08-30 14:52:26我的思路是这样的,质数一定是奇数,先把偶数排除,然后排除奇数部分。。 经过举例论证发现一个奇数一定是2个质数的乘积,排除这些奇数就能得到我们想要的质数。代码如下,欢迎各位大神指教。。 //排除偶数... -
Java Puzzlers之一:奇数判断
2008-09-09 12:44:45试用以下代码判断一int型整数是否为奇数 [code="java"] public static boolean isOdd(int i){ return i%2==1;//1 } [/code] 初看之下没有任何错误,但参数值为i为负数时,返回的却的是0或-1 以下... -
C语言 两步判断链表是否为对称链表
2020-04-19 15:27:46文章目录判断思想第一步``如果对你有帮助,...如果链表结点为奇数时,跳过中间结点 如果对你有帮助,点个赞呗 第二步 让链表后半部分结点分别于栈进行比较,如果发现其中一个结点不相同,则不是对称链表 实现代码 结... -
python输入一个整数判断是否偶数_如何用python判断奇偶数
2020-12-08 07:17:26问题分析:用Python编写一个程序,判断输入的...代码如下:while True:try:num=int(input('输入一个整数:')) #判断输入是否为整数except ValueError: #不是纯数字需要重新输入print("输入的不是整数!")continue... -
用JAVA编写奇数累加和猜数字小游戏代码(包含JAVA产生随机数)
2019-03-10 10:32:011.题目名称: 奇数累加、猜数字小游戏 2.题目要求: ...(2)遍历过程中,判断正在遍历的自然数是否奇数 (3)如果是奇数,则进行累加 3.2猜数字小游戏 (1)利用随机数产生一个1-100的整数,即为正... -
如何判断一个数是否是4的幂
2017-07-23 11:56:54将4的幂次方写成二进制...因此在判断是可以先判断此数是否为2的幂,通过while循环(num&num-1==0)。 若满足条件,再判断num&0x55555555(一个16进制数,所有的奇数位都为1)来判断。代码如下: //判断是否是4的幂 -
判断某数是否为同余数-C语言|Zam9036博客
2020-03-23 13:51:01文章目录代码语言前言问题研究四个变量四个条件条件一:(a,b)...近期,一个数学系专业的朋友联系我,问我能不能写出一个程序实现“判断一个数是否为整同余数”的功能,他还给了我同余数的定义:同余数是一个三边均为... -
31、【栈和队列】判断链表是否为中心对称(C++版)
2021-01-26 11:28:39本题的目标是判断以中心为轴,左右两端是否对称。栈具有后进先出的特性,因此可先遍历前半部分存储至栈中,再遍历后半部分,同时,依次让栈中的元素出栈,来判断比较是否相等。若全相等则为对称,若过程中有不相等时... -
利用栈来判断一个字符是否为回文数
2018-12-02 20:30:13我的思路是将需要判断的字符串分成两部分来比较(如果字符个数是奇数,会自动跳过中间那个数的比较)。 首先第一部分元素入栈,第二部分存放在字符数组中。 然后栈内元素开始出栈,出栈的元素依次和存放在数组中的第... -
判断点是否任意多边形内的2种方法
2014-10-15 23:50:00求解通过该点的水平线与多边形各边的交点,单边交点为奇数,则成立 ok我们其实就是需要看这个点的单边射线与多边形的交点,代码实现如下: [java]view plaincopyprint? publicbooleani...
-
基于信道切换方法的相干激光通信新检测方案
-
PCL 读取点云模型并可视化
-
人工智能在线特征系统中的数据存取技术
-
MMM 集群部署实现 MySQL 高可用和读写分离
-
歌声合成从入门到精通
-
ELF视频教程
-
springboot 项目启动 访问controller 404
-
MaxScale 实现 MySQL 读写分离与负载均衡
-
基于python的dango框架购物商城毕业设计毕设源代码使用教程
-
BatchCrossBankTransfer.xls
-
同学Linux,同成长
-
【路径规划】多无人机协同任务规划【Matlab 279期】
-
amplify-js-app.zip
-
钢/铝异种金属预置Si粉的光纤激光焊接
-
三维点云学习(5)4-实现Deeplearning-PointNet-1-数据集的批量读取
-
MySQL 高可用工具 heartbeat 实战部署详解
-
linux常用命令备份
-
React-ToDo:使用React构建的Todo应用。 GraphQL,Hasura和Apollo-源码
-
spark大数据分析与实战
-
数据库-PostgreSQL主从配置与测试