题目链接:http://poj.org/problem?id=2121
差一点就WA哭了,主要是自己傻逼了。
思路:
遇到hundred,sum*100;
但是遇到thouthend,million,ans+=sum*(... ...),sum=0;
因为到了thouthend,million,后面肯定又是新的数字,跟前面的没关系了,sum=0;
而hundred,后面是可以再加数的,比如22,所以这里只要sum*=100;
注意:
这里经典的一招,杰哥教我的,要重置一下order,只需要order[k]='/0';
而不需要memset了。
#include <stdio.h> #include <iostream> #include <string.h> using namespace std; char str[200]; int main() { while(gets(str)) { //printf("%s",str); if(strcmp(str,"")==0) break; bool flag = false; int ans=0; int sum=0; char order[30]={'