精华内容
下载资源
问答
  • 运算判断奇数偶数

    2021-08-05 16:15:07
    符号 对两个的二进制形式进行按与, 位数有0结果为零; 例子: 15&3=? 例: 1111 0011 运算 1111 0011 结果 0011 一个的二进制形式 末尾是1一定是奇数 比如我们的5: 二进制形式 0101 = 1x2^0 +1x2...

    我们需要用到java中的&运算符

    &符号 对两个数的二进制形式进行按位与, 位数中有0结果为零;
    例子:

    15&3=?
    例: 1111   0011
    运算
               1111
               0011
    结果       0011 
    

    一个数的二进制形式 末尾是1一定是奇数
    比如我们的5:

    二进制形式
    0101    =    1x2^0 +1x2^2  =  5         
    1x2^2   一定是偶数  因为都是2的倍数   
    当我们1x2^1  20次方是   是1  是 奇数  偶数加上奇数一定是奇数    
    

    末尾是0 一定是偶数

    奇偶判断的方法

    让这个数和1相与 结果是0就是偶数 结果为1 就是奇数

    例如: 4&1=0

    4的二进制:100

    1的二进制:001

    结果 000

    /**
     * 奇数偶数判断
     *   把这个数和 1 相 &  结果为 1    是奇数   结果为0 是偶数
     * @create: 2021/8/5
     * @author: Tony Stark
     */
    public class Demo {
        public static void main(String[] args) {
            int x1=1;
            int x2=2;
            int x3=3;
            int x4=4;
            System.out.println(x1&1);
            System.out.println(x2&1);
            System.out.println(x3&1);
            System.out.println(x4&1);
        }
    }
    

    在这里插入图片描述

    展开全文
  • 1.明确了题目需求,使得奇数位于左边,偶数位于右边; 当左边的元素位奇数,继续; 当右边元素为偶数,继续; 当这两个条件同时都不满足,也就是左边为偶数,右边为奇数,那么就调换两个元素位置。 考虑使用运算,...

    1.明确了题目需求,使得奇数位于左边,偶数位于右边;
    当左边的元素位奇数,继续;
    当右边元素为偶数,继续;
    当这两个条件同时都不满足,也就是左边为偶数,右边为奇数,那么就调换两个元素位置。
    考虑使用位运算,奇数&1必然=1,偶数&1必然等于0,以此区分是奇数还是偶数。

    代码实现:
    public static void reOrderArray(int [] array) {
    int i=0;
    int j=array.length-1;
    int temp=0;
    while(i<j){
    if ((array[i]&1)==1){
    i++;
    continue;
    }
    if ((array[j]&1)==0) {
    j–;
    continue;
    }
    temp=array[i];
    array[i]=array[j];
    array[j]=temp;
    i++;
    j–;
    }
    for (int ii=0;ii<array.length;ii++){
    System.out.print(array[ii]+",");
    System.out.println();
    }
    }

    **题目二: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分 ,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

    思路:
    1.从前往后遍历,第一个元素如果是偶数,记住这个 偶数的角标位。如果不是偶数,啥也不干。
    2.当遇到偶数的时候,判断这是不是第一个偶数,如果是 记住角标位。
    3.当遇到奇数的时候,判断其前面有没有偶数,如果有,则将前面的连续的多个偶数,顺序往后移动一位,然后将奇数插入第一个偶数位置。
    具体步骤如下例子:
    2,1,8,3,4,9 //index=0
    index>=0 奇数1 和2 交换位置 然后修改index=1
    1,2,8,3,4,9 //index=1
    1,3,2,8,4,9 //index=2
    index>=0 奇数3存入临时变量,然后元素2 和8 依次后移,之后将3存入2位置。
    1,3,9,2,8,4 //index=3
    index>=0 奇数9存入临时变量,然后元素2 ,8和4 依次后移,之后将9存入2位置。

    代码实现:
    public static void reOrderArray2(int [] array) {
    int i=0;
    int j=array.length;
    int index=-1;
    if (array.length==0){ //数组为空,啥也不干!
    return;
    }
    while(i<j){
    if ((array[i]&1)1){
    if (index>=0){
    //和index位置元素交换
    int ss=array[i];
    for (int in=i;in>index;in–)
    array[in]=array[in-1];
    array[index]=ss;
    index++;
    }
    i++;
    continue;
    }else{
    //这里很关键,需要记住从左边开始的第一个偶数的位置,如果第一个元素就是偶数,这个临界值一定要考虑到。
    //如果第一个元素不是偶数,那当遍历到第一个偶数的时候,开始记住其角标。
    if(i
    0)
    index=0;
    if (index<0)
    index=i;
    i++;
    continue;
    }
    }

    展开全文
  • 程序输出读到的数据奇数和偶数的个数。 输入格式: 一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。 输出格式: 两个整数,第一个整数表示读入数据奇数的个数,第二个整数表示读入...

    题目内容:

    	你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
    	输入格式:
    	一系列正整数,整数的范围是(0,100000)。如果输入-1则表示输入结束。
    	输出格式:
    	两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数。两个整数之间以空格分隔。
    	输入样例:
    	9 3 4 2 5 7 -1 
    	输出样例:
    	4 2
    
    package hello;
    import java.util.Scanner;
    public class mooc_work奇偶个数 {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner in =new Scanner(System.in);
    		int[] number=new int[100];
    		System.out.println("请输入一组数字:");
    		for (int j=0;j<100;j++)
    		{
    			number[j]=in.nextInt();
    			if (number[j]==-1)
    			{
    				break;
    			}
    		}
    		
    		int odd=0;
    		int even=0;
    		for (int i=0;i<number.length;i++)
    		{	if (number[i]!=-1)
    			{
    				if (number[i]%2<1)	
    				{
    					even++;
    				}
    				else
    				{
    					odd++;
    //					System.out.println(number[i]);
    				}
    			}
    			else
    			{
    				break;
    			}
    		}
    		System.out.println("奇数和偶数的个数分别为:"+odd+" "+even);
    	}
    
    }
    
    
    展开全文
  • 今天来说说另外一个运算的运用:输出二进制序列所有偶数位和奇数位

    今天来说说另外一个位运算的运用:输出二进制序列中所有偶数位和奇数位。

     

    如果对上一篇博客内容深刻了解了的话,这一个题目应该不会有太大的难度,所以闲话少说,直接上程序:

     

    #include<stdio.h>

    #include<stdlib.h>

    int main()

    {

        int num = 0;

        int i = 0;

        printf("请输入一个整数:");

        scanf("%d",&num);

        printf("这个数的二进制序列中奇数位为:\n");

        for(i=0;i<32;i+=2)

        {

            printf("%d ",(num>>i)&1);

        }

        printf("\n");

        printf("这个数的二进制序列中偶数位为:\n");

        for(i=1;i<32;i+=2)

        {

            printf("%d ",(num>>i)&1);

        }

        printf("\n");

        system("pause");

        return 0;

    }

     

    拿13的二进制序列为例子,13的二进制序列为0000 0000 0000 0000 0000 0000 0000 1101,因此输出应该为1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0和0 1 0 0 0 0 00 0 0 0 0 0 0 0 0,我们来运行一下程序验证一下:

     

    程序是输出了理想的结果,不过却不够完美……因为这是倒序输出,如果想正序输出,则要对两个循环做一下修改:

    #include<stdio.h>

    #include<stdlib.h>

    int main()

    {

        int num = 0;

        int i = 0;

        printf("请输入一个整数:");

        scanf("%d",&num);

        printf("这个数的二进制序列中奇数位为:\n");

        for(i=1;i<32;i+=2)

        {

            printf("%d ",(num>>(31-i))&1);

        }

        printf("\n");

        printf("这个数的二进制序列中偶数位为:\n");

        for(i=0;i<32;i+=2)

        {

            printf("%d ",(num>>(31-i))&1);

        }

        printf("\n");

        system("pause");

        return 0;

    }

    (绿色部分为修改的)

     

    现在我们来看看输出结果:



    若大家有疑惑或者更好的想法,欢迎在下方留言交流喔!

    展开全文
  • 以11为例子,//11:0000 0000 0000 0000 0000 0000 0000 1011 奇数位序列:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 偶数位序列:0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 代码如下: void Print_num(unsigned int num){ int i = ...
  • 输入一个整数组,实现一个函数来调整该数组数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数偶数和偶数之间的相对位置不变。 思路1 创建一个原数组的克隆...
  • ##输入一个整数组,实现一个函数来调整该数组数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数偶数和偶数之间的相对位置不变。(题目描述) public class ...
  • 输入一个整数组,实现一个函数来调整该数组数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数偶数和偶数之间的相对位置不变。 思路 创建双向队列,遍历...
  • 以11为例子,//11:0000 0000 0000 0000 0000 0000 0000 1011 奇数位序列:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 偶数位序列:0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 我之前写过一篇文章与这题一样:...
  • 输入一个整数组,实现一个函数来调整该数组数字的顺序,使得所有奇数位于数组的前半部分,偶数位于数组的后半部分。解题思路: 比如我们有一个这样的数组: 数组的长度为10,最后能够实现前面4个数字是奇数...
  • 剑指offer面试题14 :输入一个整数组,实现一个函数来调整该数组数字的顺序,使奇数都位于偶数前面。第一想法是,new一个新数组,然后遍历原来的数组,遇到奇数从前往后存到新数组里,遇到偶数从后往前存到新...
  • 输入一个整数组,实现一个函数来调整该数组数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。 当前左指针指向偶数,右指针指向奇数,就交换他们 示例: 输入:nums = [1,2,3,4] 输出...
  • PHP提取奇数偶数下标元素

    千次阅读 2018-05-31 17:09:19
    该功能主要用到 array_filter() 函数,这个函数可以用回调函数过滤数组的单元。用法:array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )依次将 array 数组的每个值传递到 ...
  • //i就增加一,j就减少一 } } } int main() { SqList sqA; int i; printf("请输入顺序表A的元素:"); for (i = 0; i ; i++) { printf("顺序表第%d个元素", i); scanf("%d", &sqA.data[i]); } sqA.len = 10; move...
  • 在刷题过程,我们经常会遇到需要判断某个整数是奇数还是...乘除法,取模,具体见文末的备注),因此我们应该尽量避免使用取模操作,在判断奇数偶数时,我们可以用操作替代取模操作,因为我们知道,偶数可以被2整...
  • 目录求两个二进制不同的个数题目描述:解题思路:代码实现:打印整数二进制的奇数位和偶数位题目描述:解题思路:检测num某一是0还是1的方式:函数实现:代码实现: 求两个二进制不同的个数 题目...
  • 记录来自《剑指offer》的算法题。题目如下: 输入一个整数组,实现一个函数来调整该数组数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
  • 如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用...
  • C语言操作符例题及详解
  • 如果数组有偶数个元素,中位数就是最中间的两个数值的平均数。 中位数对于了解“我的值是否位于中间?”非常有用。比如,我在学校的最后一次考试中得了 D (或 80),那么我的在全班同学中的排名是否在前 50%? ...
  • SQL 如何计算每个分组的中位数

    千次阅读 2020-06-15 14:31:49
    如果数据个数是奇数中位数就是最中间位置那个值;如果是偶数,则是中间位置那两个数的平均值。 怎么查询出数据分组以后每个组的中位数呢? 用SQL来解决这个问题是很有难度的! SQL的集合是无序的,没有数据位置...
  • 详细内容本篇文章主要给大家介绍如何用PHP重新排列组,并使偶数位置的元素大于奇数位置的元素。给定一个包含n个元素的数组A,根据以下关系对数组进行排序:如果i是偶数,则A[i] >= A[i-1]。如果i是奇数,则A[i] ...
  • 这个结果,至少会有一个二进制是1(如果都是0,说明两个相等,题目不符)。 举个例子,如果最终异或的结果是5,转换成二进制是00000101。此时我们可以选择任意一个是1的二进制来分析,比如末位。把两个...
  • 中位数和数据统计

    千次阅读 2019-03-18 09:11:34
    一般情况下选择的元素是随机的,最大值最小值是特殊情况,书中重点介绍了如何采用分治算法来实现选择第i小的元素,并借助中位数进行优化处理,保证最坏保证运行时间是线性的O(n)。 1、基本概念  顺序...
  • python 取列表偶数和奇数位置的值

    千次阅读 2020-08-08 09:21:19
    看了上面,应该就知道怎么取奇数位 偶数位了吧 list[::2 ] 就是取奇数位 这里的 i j 我们省略的话就是默认组最开头到结尾 list[1::2] 这里缺省了j 但是i定义了1 也就是从数组第二个开始取 ,所
  • 注意EXCEL中位数问题 中位数奇数个还是偶数个 不能用and的原因 两种方法
  • 如何找到两个数组的中位数

    千次阅读 2019-08-19 12:13:11
    大数组的长度是奇数(11),中位数显然是位于正中的第6个元素,也就是元素5 上面的例子奇数个元素的情况。那么偶数的元素是什么样呢?让我们来看另一个例子: 上图这两个给定数组AB,长度都是5,归并之后的大数...
  • 2.1 中位数、平均值、众数的总结

    千次阅读 2017-10-31 10:03:25
    中位数、平均值、众数的总结中位数 median 1.中位数,数据从小到大排序,中间位置的那个数字。奇数,+1除以2;偶数,则用除以2,除以2然后+1,这两项的,再除以2求个平均 2.不容易受到数据两端的异常值影响,不...
  • 1.写一个宏将一个数字的奇数位和偶数位交换。 #define _CRT_SECURE_NO_WARNINGS 1 #include #define CHANGE(X) \ ((X & (0x55555555)) > 1) //奇数位左移,偶数位右移 int main() { int x = 10; printf("%d\n", ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,536
精华内容 7,014
关键字:

中位数奇数和偶数的例子