#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <stdint.h>uint32_t additive_hash(char *key, uint32_t len, uint32_t prime)
{
uint32_t hash, i;
for (hash=len, i=0; i<len; ++i)
hash += key[i];
return (hash % prime);
}
int main(int argc, char **argv)
{
char name[1024];
int init =0;
if(argc == 2) {
init = atoi(argv[1]);
}
while(gets(name)>0){
int len = strlen(name);
printf("%u\n",additive_hash(name, len, 251));
}
return 0;
}
251是小于255的素数。