2 条题解

  • 0
    @ 2025-10-24 22:36:30

    #include #include #include #define ll long long

    using namespace std;

    const int N = 1e8 + 10, mod = 10000; ll n, stk[N], tt = -1; string s;

    int main() { cin >> s; // 读入整个表达式 ll l = s.size(); // 长度 for (ll i = 0; i < l; ++i) { // 从头遍历到尾 if (s[i] >= '0' && s[i] <= '9') n = n * 10 + (s[i] - '0'); //如果是数字进行累记 else if (s[i] == '+') { // 如果是加法,把之前累计的数字压栈 if (n != 0) { stk[++tt] = n % mod; n = 0; } }

    	else {						// 如果是乘法,将之前累计的数字压栈 
    		if (n != 0) {
    			stk[++tt] = n % mod;
    			n = 0;
    		}
    		++i;
    		while (s[i] >= '0' && s[i] <= '9') {		// 读入下一个数字 
    			n = n * 10 + (s[i] - '0');
    			++i;
    		}
    		--i;					// 指针回退一个 
    		stk[++tt] = n % mod;	// 压栈 
    		n = 0;
    		ll a = stk[tt--];		// 取出两个数字相乘,得到的结果压栈保存
    		ll b = stk[tt--];
    		a = a * b;
    		stk[++tt] = a % mod;
    	}
    }
    
    
    
    
    stk[++tt] = n % mod;			// 如果最后一个符号是+,则余下一个数字,压栈 
    
    ll ans = 0;
    while (tt >= 0) {					// 将栈内数字全部累加得到答案 
    	ans = (ans + stk[tt--]) % mod;
    }
    cout << ans;
    

    }

    • 0
      @ 2025-5-17 17:10:44
      #include <bits/stdc++.h>
      using namespace std;
      long long a[100002];  
      bool b[100001]; 
      int main() {
        string str; 
        int i, t = 0, top = 0;
        long long sum = 0;
        cin >> str;
        int len = str.size();
        for (i = 0; i < len; ++i)
          if (str[i] == '+') {  
            a[++top] = t;
            t = 0;
          } else if (str[i] == '*') {  
            a[++top] = t;
            t = 0;
            b[top] = true;
          } else
            t = t * 10 + str[i] - '0'; 
        a[++top] = t;
        for (i = 1; i <= top; ++i)
          if (b[i]) {  
            a[i + 1] = a[i] * a[i + 1] % 10000;
            a[i] = 0;
          }
        for (i = 1; i <= top; ++i)
          sum = (sum + a[i]) % 10000;
        cout << sum << endl;  
        return 0;
      }
      
      
      • 1

      信息

      ID
      6034
      时间
      1000ms
      内存
      125MiB
      难度
      3
      标签
      递交数
      44
      已通过
      22
      上传者