結果
問題 | No.708 (+ー)の式 |
ユーザー |
![]() |
提出日時 | 2018-06-29 22:30:23 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 8 ms / 2,000 ms |
コード長 | 1,073 bytes |
コンパイル時間 | 658 ms |
コンパイル使用メモリ | 68,788 KB |
最終ジャッジ日時 | 2025-01-06 11:41:14 |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 12 |
ソースコード
#include<iostream>#include<cstdlib>#include<string>using namespace std;int i;string str;int Expression();int Term();int Factor();int No(int);int main() {cin >> str;i = 0;cout << Expression() << endl;}int Expression() {int res = Term();while(1) {switch(str[i]) {case '+':i++;res += Term();break;case '-':i++;res -= Term();break;default:return res;}}}int Term() {int res = Factor();while(true) {switch(str[i]) {case '(':i++;res += Factor();break;case '*':i++;res *= Factor();break;case '/':i++;res /= Factor();break;default:return res;}}}int Factor() {int res = 0;switch(str[i]) {case '(':i++;res = Expression();i++;return res;default:return No(i);}}int No(int old) {while(isdigit(str[i])) i++;return atoi((str.substr(old, i)).c_str());}