http://acm.hdu.edu.cn/showproblem.php?pid=2006

这是题目。

我写题时我总是会被这些小点所烦恼。比如这道题中的假设至少一个奇数,每到这个时候就觉得自己怎么这么傻。。那就是默认测试数据中不会难为你不出现奇数。。不过写一下判断也好,起码能提高实用性(暗笑)。

下面是正文。

贴上代码

#include<stdio.h>
#include<malloc.h>
int main()
{
	int n;
	int *p;
	int i;
		
	while(scanf("%d", &n) != EOF){
		int sum = 1;
		
		p = (int*)malloc(sizeof(int) * n);

		for(i = 0; i < n; i++)
			scanf("%d", &p[i]);
	
		for(i = 0; i < n; i++){
			if(p[i] % 2 != 0)
				sum = sum * p[i];
		}
		
		printf("%d\n", sum);
		
		free(p);
	}
	
	return 0;
}

最近在学习动态分配内存,用了还是很舒服的,没有初始化多余的数组,强迫症患者表示很棒。

不过对于这种多数据只会数组好像显得很捞,我忘了其实初始化一个变量就够了。

代码如下

#include<stdio.h>
int main()
{
	int n;
	
	while(scanf("%d", &n) != EOF){
		int x;
		int sum = 1;

		while(n--){
			scanf("%d", &x);
			if(x % 2 != 0)
				sum = sum * x;
		}
		printf("%d\n", sum);
	}
	return 0;
}

看起来就很舒服。写代码嘛,看起来舒服就行了(暗笑)。