题目1010:A + B
// // #include<iostream> using std::cin; using std::cout; using std::endl; #include<cstring> const char numbers[10][6]= {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; // int strToint(const char *s) { int i; for(i = 0; i < 10; i++) if(strcmp(s,numbers[i]) == 0) break; return i; } int main() { int plusFlag = 0,c; char a[30]; int aa[4] = {0}; while(cin.getline(a,30)) { if(!strcmp(a,"zero + zero =")) break; c = 0; char* tokenPtr = strtok(a, " "); while(tokenPtr != NULL) { aa[c] = strToint(tokenPtr); c++; tokenPtr = strtok(NULL, " "); if(strcmp(tokenPtr,"+") == 0) { plusFlag = c; tokenPtr = strtok(NULL, " "); } if(strcmp(tokenPtr, "=") == 0) break; } if(plusFlag == 1) { if(c == 2) cout << aa[0] + aa[1] << endl; else if(c == 3) cout << aa[0] + 10*aa[1]+aa[2] << endl; continue; } else { if(c == 3) cout << 10*aa[0] + aa[1] + aa[2] << endl; else if(c == 4) cout << 10*aa[0] + aa[1] + 10*aa[2] + aa[3] << endl; } } return 0; } /************************************************************** Problem: 1010 User: true14fans Language: C++ Result: Accepted Time:10 ms Memory:1520 kb ****************************************************************/