USACO namenum 命名那個數字
阿新 • • 發佈:2018-12-16
中文版題目:https://www.luogu.org/problemnew/show/P3864
雖然翻譯得不太好,但是將就著看吧。
解題思路
這道題有點坑,有兩種解題方式(一種簡單,一種難):
第一種(簡單):把名字化為數字。
第二種(困難):把數字化為名字。
我最開始嘗試的是第二種,寫了半個小時想不出來,就果斷放棄用第一種做。然後就做出來了
程式碼
/*
ID: zhangka15
LANG: C++
TASK: namenum
*/
#include<iostream>
#include <cstdio>
using namespace std;
int main(){
// freopen("namenum.in","r",stdin);
// freopen("namenum.out","w",stdout);
string d;
cin>>d;
char a[50]={'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8'};
// freopen("dict.txt","r",stdin);
string name;
bool yn;
bool have=false;
while(cin>> name){
yn=false;
if(name.length()!=d.length()){
continue;
}
for(int i=0;i<d.length();i++){
if(a[name[i]-'A']!=d[i]){
yn=true;
break;
}
}
if(yn==false){
cout<<name<<endl;
have=true;
}
}
if(have==false){
cout<<"NONE"<<endl;
}
return 0;
}