zoj 2971 Give Me the Number
2011-07-31 20:05
501 查看
//2609243 2011-07-31 20:05:39 Accepted 2971 C++ 0 180 ylwh! #include <stdio.h> #include <string.h> using namespace std; char codes[][15]={"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen","eighteen", "nineteen", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty","ninety", "hundred","thousand", "million", "and"}; int getnum(char * s) { int i; for(i=0; ; i++) if(strcmp( s, codes[i]) == 0) { return i; } } int main() { int t, sum, i, j, num, x; char s[300], temp[100]; scanf("%d", &t); getchar(); while(t--) { gets(s); j = 0; num = 0; sum = 0; for(i=0; i<=strlen(s); i++) { if(s[i] != ' ' && s[i] != '\0') { temp[j++] = s[i]; } else if(s[i] == ' ' || s[i] == '\0') { temp[j] = '\0'; x = getnum(temp); if(x <= 20) num += x; else if(x>20 && x<=27) num += (x - 18) * 10; else if(x == 28) { num = num * 100; } else if(x == 30) { sum += num * 1000000; num = 0; } else if(x == 29) { sum += num * 1000; num = 0; } j = 0; } } printf("%d\n", sum+num); } return 0; }
相关文章推荐
- ZOJ-2971-Give Me the Number【5th浙江省赛】
- ZOJ 2971 Give Me the Number (模拟,字符数组的清空+map)
- [英文转数字]ZOJ 2971 Give Me the Number
- ZOJ 2971 Give Me the Number
- zoj 2971 Give Me the Number (模拟)
- zoj 2971 Give Me the Number
- ZOJ 2971 Give Me the Number(模拟)
- ZOJ 2971 Give Me the Number
- ZOJ 2971 Give Me the Number
- ZOJ 2971 Give Me the Number
- zoj 2971 Give Me the Number
- ZOJ 2971 Give Me the Number;ZOJ 2311 Inglish-Number Translator (字符处理,防空行,strstr)
- zoj 2971 Give Me the Number
- ZOJ 2971 Give Me the Number
- ZOJ 2971 && HNUOJ 16490 Give Me the Number
- ZOJ 2971-G - Give Me the Number-模拟
- poj 2971 Give Me the Number
- Zju 2971 Give Me the Number不再困惑
- Give Me the Number(将字符串的值变为数)
- ZOJ2971-Give Me the Number