HDOJ-2006-求奇數的乘積

求奇數的乘積

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 59411    Accepted Submission(s): 38281


Problem Description
給你n個整數,求他們中所有奇數的乘積。
 

Input
輸入數據包含多個測試實例,每個測試實例佔一行,每行的第一個數爲n,表示本組數據一共有n個,接着是n個整數,你可以假設每組數據必定至少存在一個奇數。
 

Output
輸出每組數中的所有奇數的乘積,對於測試實例,輸出一行。
 

Sample Input
3 1 2 3 4 2 3 4 5
 

Sample Output
3 15
 


本來很基礎的題,但是在判斷奇數方面有一些額外收穫:

一般來說判斷奇數可以用取餘數: if(x%2==0)  可以判斷奇偶;這是新手的寫法:一般簡潔點都這麼寫if(x%2)

但是對於炒雞多的數或者很大的數時,頻繁的計算去模運算據說很慢(有多慢我也不造,嗯。。程序猿的時間觀是以毫秒爲單位的~~)

所以有了此種 給 (bian) 力 (tai) 的判斷方法 if(x&1) 嗯,用了簡單粗暴的位運算,據說快了不少,看起來也比較高大上~

 

好了,對此水題來說用哪種都不會超的~

#include<stdio.h>
int main()
{
	int n,i,ans,x;
	while(scanf("%d",&n)!=EOF)
	{
		for(i=0,ans=1;i<n;i++)
		{
			scanf("%d",&x);
			if(x&1)
			ans*=x;
		}
		printf("%d\n",ans);
	}
	return 0;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章