USACO1.2.3NameThatNumber
來源:懂視網
責編:小采
時間:2020-11-09 08:31:53
USACO1.2.3NameThatNumber
USACO1.2.3NameThatNumber:USACO 1.2.3 Name ThatNumber 題意:有好多頭奶牛,它們每一頭都有一個編號,每個數字分別對應三個字母,每個數字從它對應的字母中挑一個出來組成一個單詞,給定一個詞典,看如果這個單詞在詞典中是存在的,就輸出,如果存在多個這樣的單詞,按照字母表的順
導讀USACO1.2.3NameThatNumber:USACO 1.2.3 Name ThatNumber 題意:有好多頭奶牛,它們每一頭都有一個編號,每個數字分別對應三個字母,每個數字從它對應的字母中挑一個出來組成一個單詞,給定一個詞典,看如果這個單詞在詞典中是存在的,就輸出,如果存在多個這樣的單詞,按照字母表的順

USACO 1.2.3 Name ThatNumber 題意:有好多頭奶牛,它們每一頭都有一個編號,每個數字分別對應三個字母,每個數字從它對應的字母中挑一個出來組成一個單詞,給定一個詞典,看如果這個單詞在詞典中是存在的,就輸出,如果存在多個這樣的單詞,按照字母表的順
USACO 1.2.3 Name ThatNumber
題意:有好多頭奶牛,它們每一頭都有一個編號,每個數字分別對應三個字母,每個數字從它對應的字母中挑一個出來組成一個單詞,給定一個詞典,看如果這個單詞在詞典中是存在的,就輸出,如果存在多個這樣的單詞,按照字母表的順序輸出。
打印出所有可能的單詞然后去比較,覺得效率有問題。出題者的用意明顯是讓我們反過來做,將詞典里的單詞轉換成數字然后和給定的數字比較,因為給的詞典里的單詞都是按照字母表順序排列的,而且數字和字母之間存在明顯關系。
細節+代碼:
/*
ID: 15257142
LANG: C
TASK: namenum
*/
#include
#include
int main(){
freopen("namenum.in", "r", stdin); //在我看來輸入
輸出是這道題目全部價值所在。
char num[20],a[30],b[20];
int m,ma,i,f,k;
scanf("%s",num);
m = strlen(num)-1;
freopen("dict.txt", "r", stdin); //!
freopen("namenum.out", "w", stdout); //!
f = 0;
while(scanf("%s",a)!=EOF){
ma = strlen(a)-1;
if(m!=ma)
continue;
for(i = 0;i<=ma;i++){
if(a[i]>'Q') //是沒有'Q'的,那么……
k = (a[i]-'B')/3;
else
k = (a[i]-'A')/3;
b[i] = k+'2';
}
b[ma+1] = '\0';
if(strcmp(b,num)==0){
printf("%s\n",a);
f = 1;
}
}
if(f==0)
printf("NONE\n");
fclose(stdin);
fclose(stdout);
return 0;
}
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
USACO1.2.3NameThatNumber
USACO1.2.3NameThatNumber:USACO 1.2.3 Name ThatNumber 題意:有好多頭奶牛,它們每一頭都有一個編號,每個數字分別對應三個字母,每個數字從它對應的字母中挑一個出來組成一個單詞,給定一個詞典,看如果這個單詞在詞典中是存在的,就輸出,如果存在多個這樣的單詞,按照字母表的順