本題大概題意: 小組名和彗星名都以下列方式轉換成一個數字:最終的數字就是名字中所有字母的積。
讀入彗星名和小組名并算出用上面的方案能否将兩個名字搭配起來,如果能搭配,就輸出“GO”,否則輸出“STAY”。小組名和彗星名均是沒有空格或标點的一串大寫字母mod 47等于彗星的數字mod 47,你就得告訴這個小組需要準備好被帶走!
本題首先需要注意檔案的讀寫格式! 本題的一行字元串的讀入沒有涉及空格,若涉及到此類問題,可以通過fgetc(buf,sizeof(buf),fin)解決問題
其次,可以考慮利用轉化的同時進行取模操作
int
hash(char *s)
{
int i, h;
h = 1;
for(i=0; s[i] && isalpha(s[i]); i++)
h = ((s[i]-'A'+1)*h) % 47;
return h;
}