Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
118893 | 梁乃元 | 表达式求值 | C++ | 通过 | 100 | 11 MS | 2820 KB | 851 | 2024-01-02 13:23:25 |
#include <iostream> #include <string> using namespace std; int cur = 0 ; int a [1000005] ; char op [1000005] ; void gts ( string s ) { int t = 0 ; for ( int i = 0 ; i < s . size () ; i ++ ) { if ( s [i] >= '0' && s [i] <= '9' ) { t = t *10 + s [i] - '0' ; t %= 10000 ; if ( s [i + 1] < '0' || s [i + 1] > '9' || i + 1 > s . size ( ) ) { cur ++ ; a [cur] = t ; t = 0 ; } } else { op [cur] = s [i] ; } } } int cal ( ) { int sum = 0 ; for ( int i = 1 ; i <= cur - 1 ; i++ ) { if ( op[i] == '*' ) { a[i + 1] = ( a[i] * a[i + 1] ) % 10000 ; a[i] = 0 ; } sum += a[i] ; } sum += a[cur] ; return sum % 10000 ; } int main() { string s ; cin >> s ; gts ( s ) ; int ans = cal () ; cout << ans << endl ; return 0; }