幼い頃からC++を学びましょう!CSP-J 試験準備の学習プロセスにおける質問を記録し、あらゆる瞬間を記録します。
まとめ記事を添付します: CSP-J準決勝スプリント必須回答問題 | まとめ_プログラミング大好きコミュニケーターのブログ - CSDN Blog
[タイトル説明]
加算と乗算のみを含む算術式が与えられた場合、その式を評価するプログラムをプログラムします。
【入力】
1 行は計算する必要がある式です。式には数値、加算演算子 "+" と乗算演算子 "×" のみが含まれており、括弧はありません。演算に含まれる数値はすべて 0 から 2^ の間です。 31−1. 間の整数。
入力データにより、この行には 0 ~ 9、+、および × の 12 文字のみが含まれることが保証されます。
【出力】
この式の値を表す整数。
注: 答えが 4 桁を超える場合は、最後の 4 桁のみを出力し、先頭の 0 は出力しません。
【入力サンプル】
1+1*3+4
【出力サンプル】
8
【詳しいコード説明】
#include <iostream>
#include <stack>
using namespace std;
stack<long long> st;
int main ( )
{
long long a, c, x = 0;
char b;
cin >> a;
a %= 10000;
st.push(a);
while (cin >> b) {
cin >> a;
a %= 10000;
if (b == '*') {
c = st.top();
st.pop();
st.push(a * c % 10000);
}
else {
st.push(a);
}
}
while (!st.empty()) {
x += st.top();
st.pop();
x %= 10000;
}
cout << x;
return 0;
}
【運用結果】
1+1*3+4
8