精华内容
下载资源
问答
  • 简化代码——判断一个整数是否为奇数判断一个整数是否为奇数一般情况 判断一个整数是否为奇数 一般情况 学过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的幂的操作数时明显快于除法/乘法,但代码的清晰度通常优于原始速度。同时它也可用于加密、解密。

    展开全文
  • 完成以下代码判断一个整数是否奇数:public boolean isOdd(int i)看过《编程珠玑》人都知道这道题答案和其中极为简单道理。最普遍风格,如下:这个函数定义要求返回一个布尔类型值。而 if 后面...

    完成以下代码,判断一个整数是否是奇数:

    public boolean isOdd(int i)

    看过《编程珠玑》的人都知道这道题的答案和其中极为简单的道理。

    最普遍的风格,如下:

    021b195b9ca3b84c16c10760610294c5.png

    这个函数的定义要求返回一个布尔类型的值。而 if 后面的括号里面的表达式的值也是一个布尔类型的。由此,可进行如下改进:

    2b72d6bbe8f73bd0a8acb810ffa83722.png

    奇数可以分为正奇数和负奇数。奇数的数学表达形式为 2k+1 (k≠0)。由此,优化如下:

    8c14679c68072cce4b3b308305a1b984.png

    简单分析,做出如下改进:

    7c23074efa95af822a115b87abf6b752.png

    右移一位相当于该数除以2,右移2位相当于该数除以4,结果没有小数位,都是取整。

    左移一位相当于该数乘以2,左移2位相当于该数乘以2^2=4。

    位运算:某数除以2,再乘以2不等于该数,说明该数为奇数:

    b28c831d4c6f7a5e7dac20d59684e59a.png

    === and运算 ===

    and运算通常用于二进制的取位操作。一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。代码如下:

    8dc4f41312543d0cbea0985ac85eb8f6.png
    展开全文
  • 写一段判断奇数的代码,对大家而言都是很简单的事。但并不是所有人都能注意到其中的陷阱。例如下面的一个方法: 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-判断输入数字是否为奇数 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

    运行结果:

    posted @ 2017-09-11 19:29 一串字符串 阅读(...) 评论(...) 编辑 收藏

    展开全文
  • 判断一个int类型是否为奇数

    千次阅读 2011-03-30 14:51:00
    //以下的代码没有考虑到负数的情况,所有负奇数判断结果都是错误的,所以有1/4的结果都是错误的。 public static boolean isOdd(int i){return i%2==1;}//修改方法1:如果int类型的数对2取余,结果不等于0,那么...
  • 完成以下代码判断一个整数是否奇数:public boolean isOdd(int i)看过《编程珠玑》人都知道这道题答案和其中极为简单道理。最普遍风格,如下:这个函数定义要求返回一个布尔类型值。而 if 后面...
  • 如下面的代码所示:   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:53
    1.判断一个数是否为奇数 代码: #include <stdio.h> #include <Windows.h> #pragma warning (disable:4996) int Odd(int _data) { if (_data % 2 == 1) { return 1; } else return 0; //(1)...
  • 以下实例用于判断一个数字是否为奇数或偶数: # -*- coding: UTF-8 -*- # Filename : test.py # Python 判断奇数偶数 # 如果是偶数除于 2 余数为 0 # 如果余数为 1 则为奇数 num = int(input("输入一个数字: ")) if...
  • python 判断数字是奇数还是偶数

    万次阅读 2019-04-23 11:10:55
    num=int(input('输入一个整数:')) #判断输入是否为整数 except ValueError: #不是纯数字需要重新输入 print("输入不是整数!") continue if num%2==0: print('偶数') else: ...
  • 今天找提高代码性能方法,刚好看到这篇文章里... 奇偶判断不要使用 i % 2 == 1 来判断是否奇数,因为i奇数时不成立,请使用 i % 2 != 0 来判断是否奇数,或使用高效式 (i & 1) != 0来判断。 想着今...
  • 判断一个数P是否的素数一般方法: 方法1:k从2开始,到n-1为止,判断P是否可以整除k 改进1:k到sqrt(P)为止 改进2:k从3开始且只考虑奇数 时间复杂度:O(P) 一个更快算法:Miller-Rabin算法 实现:在2-P-...
  • 1. 判断n是否为2幂次: n&(n-1)==0 解释: n二进制中最为1,低于该位均为0 n-1二进制中最高位为0,低于该位均为1 python代码: class Solution: def isPowerOfTwo(self, n: int) -> bool: ...
  • 题目:判断正整数是否为2某次幂,且是否为4某次幂 ...而2偶数次幂就必定为4某次幂,即当一个数为22k次幂时,也是4k次幂,由此可同时判断是否为4某次幂。 具体代码如下: import java...
  • 将4的幂次方写成二进制形式...思路:首先用条件num & num-1==0来判断是否为2的幂次方,若不满足,则不是。若满足,在用条件num & 0x55555555来判断,若为真,则这个整数是4的幂次方,否则不是。使用递归来实现的代码
  • 判断目标点与所有边夹角和是否为360度,为360度则在多边形内部。 1.3射线法 从目标点出发引一条射线,看这条射线和多边形所有边交点数目: (1)如果有奇数个交点,则说明在内部; (2)如果有偶数个交点,则...
  • 如何获得一定范围内所有偶数或者奇数, 虽然这并不难,但我还是要些写出来: 如上图所示,其中: ...若把判断念出来,即,i除2后是否余0,如果是0,则为偶数,若不等于0,则为奇数。 好吧,有点复杂...
  • (2)夹角和判别法:判断目标点与所有边夹角和是否为360度,为360度则在多边形内部。 (3)引射线法:从目标点出发引一条射线,看这条射线和多边形所有边交点数目。如果有奇数个交点,则说明在内部,如果有偶数...
  • 引射线法:从目标点出发引一条射线,看这条射线和多边形所有边交点数射线法 时间复杂度:O(n) 适用范围:任意...如果为奇数,Q在多边形内;如果为偶数,Q在多边形外。计数时候会有一些特殊情况,如图 Java实...
  • 思路是这样,质数一定是奇数,先把偶数排除,然后排除奇数部分。。 经过举例论证发现一个奇数一定是2个质数乘积,排除这些奇数就能得到我们想要质数。代码如下,欢迎各位大神指教。。 //排除偶数...
  • 试用以下代码判断一int型整数是否为奇数 [code="java"] public static boolean isOdd(int i){ return i%2==1;//1 } [/code] 初看之下没有任何错误,但参数值为i为负数时,返回是0或-1 以下...
  • 文章目录判断思想第一步``如果对你有帮助,...如果链表结点为奇数时,跳过中间结点 如果对你有帮助,点个赞呗 第二步 让链表后半部分结点分别于栈进行比较,如果发现其中一个结点不相同,则不是对称链表 实现代码 结...
  • 问题分析:用Python编写一个程序,判断输入...代码如下:while True:try:num=int(input('输入一个整数:')) #判断输入是否为整数except ValueError: #不是纯数字需要重新输入print("输入不是整数!")continue...
  • 1.题目名称: 奇数累加、猜数字小游戏 2.题目要求: ...(2)遍历过程中,判断正在遍历自然数是否奇数 (3)如果是奇数,则进行累加 3.2猜数字小游戏 (1)利用随机数产生一个1-100整数,即正...
  • 将4幂次方写成二进制...因此在判断是可以先判断此数是否为2幂,通过while循环(num&num-1==0)。 若满足条件,再判断num&0x55555555(一个16进制数,所有的奇数位都为1)来判断。代码如下: //判断是否是4
  • 文章目录代码语言前言问题研究四个变量四个条件条件一:(a,b)...近期,一个数学系专业朋友联系我,问我能不能写出一个程序实现“判断一个数是否为整同余数”功能,他还给了我同余数定义:同余数是一个三边均为...
  • 本题目标是判断以中心轴,左右两端是否对称。栈具有后进先出特性,因此可先遍历前半部分存储至栈中,再遍历后半部分,同时,依次让栈中元素出栈,来判断比较是否相等。若全相等则对称,若过程中有不相等时...
  • 思路是将需要判断的字符串分成两部分来比较(如果字符个数是奇数,会自动跳过中间那个数比较)。 首先第一部分元素入栈,第二部分存放在字符数组中。 然后栈内元素开始出栈,出栈元素依次和存放在数组中第...
  • 求解通过该点水平线与多边形各边交点,单边交点为奇数,则成立 ok我们其实就是需要看这个点单边射线与多边形交点,代码实现如下: [java]view plaincopyprint? publicbooleani...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 335
精华内容 134
关键字:

判断是否为奇数的代码