Hdu 1235 统计同成绩学生人数

第一次只直接枚举写的,效率比较低。由于知道网上一定有更好的方法,所以去参考了别人的代码。所以第二次是用hash写的。

CODE:

 

#include <stdio.h>
#include <stdlib.h>
#include < string.h>
using  namespace std;

const  int maxn =  1001;
int a[ 1001];


int search( int *a,  int n,  int v)
{
     int tot =  0;
     for( int i =  0 ; i < n; i++)
    {
         if(a[i] == v) tot++;
    }
     return tot;
}


int main()
{
     int n;
     while(~scanf( " %d ", &n), n)
    {
         int i, j, v;
        memset(a,  0sizeof(a));
         for(i =  0 ; i < n ; i++) scanf( " %d ", &a[i]);
        scanf( " %d ", &v);
         int t = search(a, n, v);
        printf( " %d\n ", t);
    }
     return  0;
}

 

 

这次用的hash

CODE:

 

#include <stdio.h>
#include <stdlib.h>
#include < string.h>
using  namespace std;

const  int maxn =  101;
int hash[maxn];

int main()
{
     int N;
     int n;
     while(~scanf( " %d ", &N), N)
    {
         int i;
        memset(hash,  0sizeof(hash));
         for(i =  0; i < N ; i++)
        {
            scanf( " %d ", &n);
            ++hash[n];
        }
        scanf( " %d ", &n);
        printf( " %d\n ", hash[n]);
    }
     return  0;

} 

 

你可能感兴趣的:(HDU)