大意略。
从文件读出数据不太会额。
/* ID:g0feng1 LANG:C++ TASK:namenum */ #include <iostream> #include <fstream> #include <cstdlib> #include <cstdio> #include <string> #include <cstring> #include <cmath> #include <vector> #include <algorithm> #include <stack> using namespace std; ofstream fout("namenum.out"); ifstream fin("namenum.in"); fstream dic("dict.txt"); int ans[] = {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 0, 7, 7, 8, 8, 8, 9, 9, 9, 0}; vector<string> save; int n; string in, out; void read_case() { fin>>in; n = in.size(); while(dic>>out) { if(out.size() == n) save.push_back(out); } } void solve() { read_case(); int flag1 = 0, flag2 = 0; for(int i = 0; i < save.size(); i++) { flag1 = 0; for(int j = 0; j < n; j++) { if(ans[save[i][j]-'A'] != in[j]-'0') {flag1 = 1; break;} } if(!flag1) { flag2 = 1; fout<<save[i]<<endl; } } if(!flag2) fout<<"NONE"<<endl; } int main() { solve(); return 0; }