hdu1228——A+B
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14346 Accepted Submission(s): 8511
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
물 문제 하나,맵 에 대응 치 를 저장 하면 됩 니 다!
#include<iostream>
#include<map>
using namespace std;
int add(string a,string b)
{
map<string,int> num;
num["one"]=1;num["two"]=2;
num["three"]=3;num["four"]=4;
num["five"]=5;num["six"]=6;
num["seven"]=7;num["eight"]=8;
num["nine"]=9;num["zero"]=0;
int i,m=0,n=0;
string tem;
for(i=0;i<a.size();i++)
{
if(a[i]==' ')
{
m=m*10+num[tem];
tem.clear();
}
else tem+=a[i];
}
tem.clear();
for(i=0;i<b.size();i++)
{
if(b[i]==' ')
{
n=n*10+num[tem];
tem.clear();
}
else tem+=b[i];
}
return m+n;
}
int main()
{
string str;
while(getline(cin,str))
{
int len=str.size();
string a,b;int i,k;
for(i=0;i<len;i++)
{
if(str[i]=='+') break;
a+=str[i];
}
for(k=i+2;k<len;k++)
{
if(str[k]=='=') break;
b+=str[k];
}
if(add(a,b)==0) break;
else cout<<add(a,b)<<endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQL 에서 튜 토리 얼 사이트 링크 를 완전히 마 운 트 해제 하고 설치 합 니 다.다음 주 소 는 제 가 SQL 2008 을 설치 하고 마 운 트 해제 할 때 찾 은 좋 은 자료 입 니 다.이 사이트 링크 들 의 마 운 트 해제 와 설치 내용 이 정말 좋 습 니 다. 행운 을 빌 겠 습 니 다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.