View Code of Problem 3855

#include<iostream>
#include<cmath>
#include<string>
#include<ctype.h>
using namespace std;
int main() 
{
	int t;
	cin >> t;
	while (t--)
	{
		string s;
		cin >> s;
		int len = s.size();
		int num = 0;
		int sum = 0;
		if (isdigit(s[0]))
		{
			for (int i = 0;i < len;i++)
			{
				while (isdigit(s[i])&& i < len)
				{
					num = num * 10 + s[i] - '0';
					i++;
				}
				sum += num;
				num = 0;
				i++;
				if (s[i] == '-')
				{
					i++;
					while (isdigit(s[i]) && i < len)
					{
						num = num * 10 + s[i] - '0';
						i++;
					}
					num *= -1;
				}
				else
				{
					while (isdigit(s[i]) && i < len)
					{
						num = num * 10 + s[i] - '0';
						i++;
					}
				}
			}
			sum += num;
		}
		else if(s[0]=='-')
		{
			
			for (int i = 1;i < len;i++)
			{
				while (isdigit(s[i]) && i < len)
				{
					num = num * 10 + s[i] - '0';
					i++;
				}
				num *= -1;
				sum += num;
				num = 0;
				i++;
				if (s[i] == '-')
				{
					i++;
					while (isdigit(s[i]) && i < len)
					{
						num = num * 10 + s[i] - '0';
						i++;
					}
					num *= -1;
				}
				else
				{
					while (isdigit(s[i]) && i < len)
					{
						num = num * 10 + s[i] - '0';
						i++;
					}
				}
			}
			sum += num;
		}
		cout << sum << endl;
	}
}

Double click to view unformatted code.


Back to problem 3855