NYOJ 표현 식
시간 제한:
3000 ms | 메모리 제한:
65535 KB
난이도:
3
묘사 하 다.
Dr. Kong 이 디자인 한 로봇 카드 는 가감 법 연산 을 많이 파악 한 후에 최근 에 간단 한 함수 구 치 를 배 웠 다. 예 를 들 어 함수 min (20, 23) 의 값 이 20 이라는 것 을 알 게 되 었 다. ,add(10,98) 의 값 은 108 등등 이다.훈련 을 통 해 Dr. Kong 이 디자인 한 로봇 카드 는 심지어 더 복잡 한 표현 식 을 계산 할 수 있다.
가설 표현 식 은 간단하게 다음 과 같이 정의 할 수 있다.
1. 십 진수 x 표현 식 입 니 다.
2. 하면, 만약, 만약... x 화해시키다 y 예. 표현 식 함수 min (x, y )표현 식 중 소수.
3. 하면, 만약, 만약... x 화해시키다 y 예. 표현 식 함수 max (x, y )표현 식 중 최대 수.
4. 만약 x 화해시키다 y 예. 표현 식 함수 add (x, y )표현 식 화합
예컨대 표현 식 max(add(1,2),7) 값 7。
주어진 표현 식 에 대한 도움말 을 작성 하 십시오. Dr.Kong 카드 의 계산 오 류 를 교정 하기 위해 정 답 을 산출 하 다.
입력
첫 번 째 줄: N 은 계산 할 표현 식 개 수 를 표시 합 니 다 (1 ≤ N ≤ 10)
다음은 N 줄 이 있 습 니 다. 줄 마다 문자열 입 니 다. 값 을 표시 하 는 표현 식 입 니 다.
(표현 식 에 빈 칸 이 남아 있 지 않 습 니 다. 줄 당 300 자 를 넘 지 않 습 니 다. 표현 식 에 나타 난 10 진수 가 없습니다.
1000 이 넘다.)
출력
출력 은 N 줄 이 있 습 니 다. 각 줄 은 표현 식 의 값 에 대응 합 니 다.
샘플 입력
3
add(1,2)
max(1,999)
add(min(1,1000),add(100,99))
샘플 출력
3
999
200
근원
제4 회 하남성 프로 그래 밍 대회
업로드 자
장 운 총
oj 코 인 3 개 써 서 봤 어 요.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<stack>
#define max(a,b) (a>b?a:b)// max
#define min(a,b) (a<b?a:b)// min
using namespace std;
char s[305];
int ans(int a,int b,char c)//
{
switch(c)
{
case 'd': return a+b;
case 'n': return min(a,b);
case 'x': return max(a,b);
}
}
int main()
{
int t;
scanf("%d",&t);
char sz[100];//
while(t--)
{
memset(s,0,sizeof(s));
memset(sz,0,sizeof(sz));
scanf("%s",s);
stack<char>word;
stack<int>num;
int l=strlen(s);
for(int i=0;i<l;i++)
{
if(s[i]=='x'||s[i]=='n')//max min add
word.push(s[i]);//so
if(s[i]=='d'&&s[i+1]=='d')// wa add d add d
word.push(s[i]);
if(s[i]>='0'&&s[i]<='9')//
{
sscanf(&s[i],"%[0-9]",sz);// sz,
int tp=atoi(sz);//atoi
num.push(tp);//
i+=strlen(sz)-1;//i i-1
}
if(s[i]==')')// ) pop
{
int b=num.top();num.pop();//b
int a=num.top();num.pop();//a
char pt=word.top();word.pop();
num.push(ans(a,b,pt));
}
}
printf("%d
",num.top());
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.