【九度OJ】题目1169:比较奇偶数个数 解题报告
【九度OJ】题目1169:比较奇偶数个数 解题报告
标签(空格分隔): 九度OJ
http://ac.jobdu.com/problem.php?pid=1169
题目描述:
第一行输入一个数,为n,第二行输入n个数,这n个数中,如果偶数比奇数多,输出NO,否则输出YES。
输入:
输入有多组数据。
每组输入n,然后输入n个整数(1<=n<=1000)。
输出:
如果偶数比奇数多,输出NO,否则输出YES。
样例输入:
5
1 5 2 4 3
样例输出:
YES
Ways
很简单的题,只要统计奇数和偶数的个数即可。
用了一个技巧,判断一个数是否是奇数可以直接:(nums[i] & 1) != 0
,位运算速度很快。
另外,memset函数要导入库#include <cstring>
。
#include<stdio.h>
#include <cstring>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
int count[2];//0放偶,1放奇
memset(count, 0, sizeof(count));
int nums[1000];
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
for (int i = 0; i < n; i++) {
if ((nums[i] & 1) != 0) {//奇数
count[1]++;
} else {
count[0]++;
}
}
if (count[0] > count[1]) {
printf("NO\n");
} else {
printf("YES\n");
}
}
return 0;
}
Date
2017 年 3 月 17 日