L1-022 奇偶分家 (10 point(s))

Posted Atl212

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L1-022 奇偶分家 (10 point(s))相关的知识,希望对你有一定的参考价值。

  • 试着玩了下位运算求奇偶,如果为偶数那么二进制位比如 2 就有 1 0 而与 1 的二进制 0 1 取与运算的时候,得 0 。相反奇数比如 3 二进制为 1 1 & 0 1 = 0 1 。

    对更大的数同样成立,所以所以可以写成 if(tmp & 1) odd++ 。

    当时还想了想会不会有非奇偶的数,所以用了两个 if 来判断。看了下别人代码同时结合题目条件 “给出N个非负整数” 是不包括 0 的情况的,所以不是奇数就是偶数了,可以用 if-else 判断。

    参考代码

// 位运算
#include <bits/stdc++.h>
using namespace std;

int main(){
	int N, tmp, odd = 0, even = 0;
	cin >> N;
	while(N--){
		cin >> tmp;
		if(tmp & 1) odd++;
		else even++;
	}
	cout << odd << " " << even;
} 
// 取余
#include <bits/stdc++.h>
using namespace std;

int main(){
	int N, tmp, odd = 0, even = 0;
	cin >> N;
	while(N--){
		cin >> tmp;
		if(tmp % 2 == 1) odd++;
		if(tmp % 2 == 0) even++;
	}
	cout << odd << " " << even;
} 

以上是关于L1-022 奇偶分家 (10 point(s))的主要内容,如果未能解决你的问题,请参考以下文章

L1-022. 奇偶分家

L1-022 奇偶分家

天梯赛每日打卡03(13-25题解)

L1-018 大笨钟 (10 point(s)) (测试点四)

2017除夕夜的感悟:学习工作不分家,工作生活不分家,读书用兵不分家

华为荣耀魅族魅蓝,手机品牌为何钟爱“分家”?