mod の練習。鉄則本の問題なので、コードのみ。
問題概要
最初、黒板に 0 という数が書かれている。以下の 回の操作を実行せよ。各操作では文字 と数 が与えられる。
- = '+' のとき:黒板に書かれた数を、 を足した数に書き直す
- = '-' のとき:黒板に書かれた数を、 を引いた数に書き直す
- = '*' のとき:黒板に書かれた数を、 をかけた数に書き直す
各操作が終わった後について、黒板に書かれた数を 10000 で割った余りを答えよ。
制約
コード
#include <bits/stdc++.h> using namespace std; const int MOD = 10000; int main() { long long N, A, res = 0; char T; cin >> N; for (int i = 0; i < N; i++) { cin >> T >> A; if (T == '+') res = (res + A) % MOD; else if (T == '-') res = ((res - A) % MOD + MOD) % MOD; else res = (res * A) % MOD; cout << res << endl; } }