항전 ACM HDU 1228 A + B

A + B
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9374    Accepted Submission(s): 5364
Problem Description
100 보다 작은 정수 A 와 B 두 개 를 읽 고 A + B 를 계산 합 니 다.
주의해 야 할 것 은 A 와 B 의 모든 숫자 는 해당 하 는 영어 단어 에 의 해 제 시 됩 니 다.
 
 
Input
테스트 입력 은 몇 가지 테스트 용례 를 포함 하고 있 습 니 다. 모든 테스트 용례 는 한 줄 을 차지 합 니 다. 형식 은 'A + B =' 이 고 인접 한 두 문자열 은 빈 칸 간격 이 있 습 니 다. A 와 B 가 동시에 0 일 때 입력 이 끝나 면 해당 결 과 는 출력 하지 마 십시오.
 
 
Output
모든 테스트 용례 에 1 줄, 즉 A + B 의 값 을 출력 합 니 다.
 
 
Sample Input

   
   
   
   
one + two = three four + five six = zero seven + eight nine = zero + zero =

 
 
Sample Output

   
   
   
   
3 90 96

 
 
Source
절 대 컴퓨터 대학원 재시험
 
 
Recommend
JGShining
 
 
#include <cstdio>
#include <string.h>
int f(char str[]){
    if(!strcmp(str,"zero"))return 0;
    if(!strcmp(str,"one"))return 1;
    if(!strcmp(str,"two"))return 2;
    if(!strcmp(str,"three"))return 3;
    if(!strcmp(str,"four"))return 4;
    if(!strcmp(str,"five"))return 5;
    if(!strcmp(str,"six"))return 6;
    if(!strcmp(str,"seven"))return 7;
    if(!strcmp(str,"eight"))return 8;
    if(!strcmp(str,"nine"))return 9;
}
int main(){
    char str[30];
    int a,b;
    while(1){
        a=b=0;
        while(1){
            scanf("%s",str);
            if(!strcmp(str,"+"))break;
            else a=a*10+f(str);
        }
        while(1){
            scanf("%s",str);
            if(!strcmp(str,"="))break;
            else b=b*10+f(str);
        }
        if(a==0&&b==0)break;
        printf("%d
",a+b); } }

좋은 웹페이지 즐겨찾기