//P1603 #include <iostream> #include <cstring> // use strlen strcpy using namespace std; const int Max = 50; const char * a[Max] = {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", "a", "both", "another", "first", "second", "third"}; const char * init[Max] = {"01", "04", "09", "16", "25", "36", "49", "64", "81", "00", "21", "44", "69", "96", "25", "56", "89", "24", "61", "00", "01", "04", "09", "01", "04", "09"}; bool check_str(char*, const char*); int main() { char ch[Max]; int count = 0, num[100] = {}; for (int i = 0; i < 6; ++i) { cin >> ch; for (int j = 0; j < 26; ++j) if (check_str(ch, a[j])) num[10*(init[j][0]-'0')+init[j][1]-'0']++; } long long ans = 0; for (int i = 0; i < 100; ++i) while (num[i]--) { ans = ans * 100 + i; } cout << ans; return 0; } bool check_str(char* a, const char* b) { if (strlen(a) != strlen(b)) return 0; for (int i = 0; i < strlen(b); ++i) if (a[i] != b[i]) return 0; return 1; }
https://www.luogu.org/problemnew/show/P1603
其实吧,我感觉这道题比前两道题更有价值,通过。。。
。。。。
利用。。。
技巧
就能够完成。
就当锻炼大家读代码能力吧!