方法
- 使用map做字典,解析出单词与数字的对应关系
- 使用sort排序,然后按照条件输出
代码
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
map<string, int> m;
int num[10], cnt = 0;
int main()
{
m["one"] = 1;
m["two"] = 2;
m["three"] = 3;
m["four"] = 4;
m["five"] = 5;
m["six"] = 6;
m["seven"] = 7;
m["eight"] = 8;
m["nine"] = 9;
m["ten"] = 10;
m["eleven"] = 11;
m["twelve"] = 12;
m["thirteen"] = 13;
m["fourteen"] = 14;
m["fifteen"] = 15;
m["sixteen"] = 16;
m["seventeen"] = 17;
m["eighteen"] = 18;
m["nineteen"] = 19;
m["twenty"] = 20;
m["a"] = 1;
m["both"] = 2;
m["another"] = 1;
m["second"] = 2;
m["first"] = 1;
m["third"] = 3;
string str;
for(int i = 0; i < 7; i++){
cin >> str;
if(m.count(str) == 1){
num[cnt++] = (m[str] * m[str]) % 100;
}
}
sort(num, num+cnt);
int pos = 0;
for(; pos < cnt && num[pos] == 0; pos++);
for(int i = pos; i < cnt; i++){
if(i != pos && num[i] < 10){
cout << 0;
}
cout << num[i];
}
if(pos == cnt){
cout << 0;
}
return 0;
}