1. 程式人生 > >USACO namenum 命名那個數字

USACO namenum 命名那個數字

中文版題目: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; }