블루브리지 컵 표현식 계산 【귀속】
가감귀제와 괄호만 포함하는 합법적인 표현식을 입력하여 표현식의 값을 구하십시오.여기서 제외는 정리를 나타냅니다.
형식 입력
표현식을 포함하는 행을 입력합니다.
출력 형식
이 표현식의 값을 출력합니다.
샘플 입력
1-2+3*(4-5)
샘플 출력
-4
데이터 규모 및 규약
표현식의 길이는 100을 넘지 않으며 표현식 연산은 합법적이며 연산 과정은 모두 int내에서 진행된다.
문제 풀이 사고방식
이 문제는 백련의 한 문제와 거의 똑같다. 유일하게 다른 것은 백련의 그 문제 데이터의 더블 유형이다. 그 문제를 보면 이 문제를 알게 된다. 링크:
https://blog.csdn.net/weixin_42765557/article/details/84453253
AC 코드
#include
using namespace std;
int expression_value();
int factor_value()
{
int result=0;
char op = cin.peek();
if(op == '(') {
cin.get();
result = expression_value();
cin.get();
}
else {
while(op <= '9' && op >= '0') {
cin.get();
result = result*10 + (op - '0');
op = cin.peek();
}
}
return result;
}
int term_value()
{
int result = factor_value();
char op = cin.peek();
while(op == '*' || op == '/') {
if(op == '*') {
cin.get();
result *= factor_value();
}
else if(op == '/') {
cin.get();
result /= factor_value();
}
op = cin.peek();
}
return result;
}
int expression_value()
{
int result = term_value();
char op = cin.peek();
while(op == '+' || op == '-') {
if(op == '+') {
cin.get();
result += term_value();
}
else if(op == '-') {
cin.get();
result -= term_value();
}
op = cin.peek();
}
return result;
}
int main()
{
cout << expression_value();
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Blu-Bridge 컵 -- Excel 주소문제 설명 Excel 셀의 주소는 열 번호를 알파벳으로 표시하는 흥미로운 것을 나타낸다. 예를 들면, A는 첫 번째 열을 나타냅니다. B는 두 번째 열을 나타냅니다. Z는 26열을 나타냅니다. AA는 27열을 나타냅...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.