View Code of Problem 3855

#include <algorithm>
#include <cctype>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;

int main(void)
{
    int n;
    scanf("%d", &n);
    getchar();
    while (n--)
    {
        int flag = 1;
        long long sum = 0;
        string str;
        cin >> str;
        for (size_t i = 0; i < str.size(); i++)
        {
            if (isdigit(str[i]))
            {
                long long num = 0;
                while (isdigit(str[i]))
                {
                    num = num * 10 + str[i] - '0';
                    i++;
                }
                sum += num * flag;
                i--;
            }
            else if (str[i] == '+')
                flag = 1;
            else if (str[i] == '-')
                flag = -1;
        }
        cout << sum << endl;
    }
}

Double click to view unformatted code.


Back to problem 3855