对于HDU2006的不同解法 不放弃任何一个小点
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;
}
看起来就很舒服。写代码嘛,看起来舒服就行了(暗笑)。