浙大版《C语言程序设计(第3版)》题目集
习题4-1 求奇数和 (15 分)
本题要求计算给定的一系列正整数中奇数的和。
输入格式:
输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。
输出格式:
在一行中输出正整数序列中奇数的和。
输入样例1:
8 7 4 3 70 5 6 101 -1
输出样例1:
116
二、题解
n & 1
等于 n % 2
n对1按位与,1的二进制最后一位为1,其它位为0。若n为奇数,最后一位为1, n&1为1。若n为偶数,最后一位为0, n&1为0。
c代码
#include <stdio.h>
int main() {
int n, sum = 0;
while(scanf("%d", &n) != EOF && n > 0)
if(n & 1) sum += n;
printf("%d\n", sum);
return 0;
}