C/C++ 关于异或

来源:互联网 发布:qq好友定位软件 编辑:程序博客网 时间:2024/06/05 22:54

问题:寻找一个整形数组中,有多少对整形满足:


异或之后为奇数


分析: 1.对于异或的理解

         2.判断奇偶数的方法

x & 1 == 0  ----> 偶数

x & 1  != 0  ----> 奇数


<span style="font-size:14px;">/*********************************************     寻找一个整形数组中有多少对整形满足:            异或之后为奇数        (异或:相同为0,不同为1) *********************************************/#include <iostream>void scanfOrginalData(int array[],int len,int arraryForOdd[],int arrayForEven[],int &lenForOdd,int &lenForEven);int main(int argc, const char * argv[]){        int len;    int lenForOdd;    int lenForEven;        printf("Please enter the len of the array:\n");    scanf("%d",&len);    printf("Please enter each number of array:\n");    int arraryForNumber[len];        for (int i=0; i<len; i++) {        scanf("%d",&arraryForNumber[i]);    }        int arrayForOdd[] = {0};    int arrayForEven[] = {0};        scanfOrginalData(arraryForNumber, len, arrayForOdd, arrayForEven,lenForOdd,lenForEven);        printf("There are %d * %d = %d couple of odd numbers in the array.\n",lenForEven,lenForOdd,lenForEven*lenForOdd);        return 0;}void scanfOrginalData(int array[],int len,int arraryForOdd[],int arrayForEven[],int &lenForOdd,int &lenForEven){        int i=0,j=0,k=0;    while (k < len) {        /***            偶数         ***/        if ((array[k] & 1)== 0) {                        arrayForEven[i] = array[k];            i++;            k++;        }else{            /***                奇数             ***/            arraryForOdd[j] = array[k];            j++;            k++;        }    }        lenForEven = i;    lenForOdd = j;    }</span>


0 0
原创粉丝点击