本文主要是介绍求奇数的乘积2006,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这里首先有三点:第一、根据计算机组成原理对于原码和补码我们知道奇数的二进制最后一位一定是1,偶数的二进制最后一位一定是0,所以用来检验一个数字是奇数还是偶数我们通常用与运算,比如if(a & 1)也就是最后一位都是1是才是真(也就是说明这个数字是奇数),比如if(a & 0)也就是最后一位都是0是才是真(也就是说明这个数字是偶数)
第二、关于语句printf("%d",sum);放不放在第一个while循环里面是由讲究的,因为EOF代表文件末尾,如果在OJ系统之中,文件是容易达到系统末尾的,如果是在本地计算机中,计算机不知道你后面究竟还要不要在输入一些文件,所以默认会直接执行下一次文件读入,也就是他很难出去第一个while循环,所以最佳的建议还是把这个语句放在第一个循环之内,无论是OJ还是本地电脑都可以非常丝滑的输出最后的结果
还有一点就是,n代表的是输入的数字个数,不要搞错这一点,否则会比较难理解程序在讲什么
#include<stdio.h>
int main()
{int n,a,sum;while(scanf("%d",&n) != EOF){sum =1;while(n--){scanf("%d",&a);if(a & 1){sum *=a;}}
printf("%d",sum);}return 0;
}
这篇关于求奇数的乘积2006的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!