Матч
178, Простой
калькулятор (SimpleCalculator)
Дивизион 2, Уровень 1
Калькулятор умеет вычислять
четыре арифметических действия и имеет один из следующих входных форматов: <num> + <num>, <num> – <num>, <num> *
<num> или <num> /
<num>, где <num> – натуральное число, которое может содержать ведущие нули. Операция деления является целочисленной. В задаче требуется найти значение
заданного арифметического выражения.
Класс: SimpleCalculator
Метод: int calculate(string input)
Ограничения:
1 £ <num> £ 1000.
Вход. Строка input, содержащая одно из
арифметических выражений.
Выход. Результат вычисления арифметической операции.
Пример входа
input |
5/3 |
15*3 |
1-10000 |
17+18 |
Пример выхода
1
45
-9999
35
РЕШЕНИЕ
обработка строк
Следует воспользоваться
форматированным чтением данных при помощи функции scanf.
ПРОГРАММА
#include <cstdio>
#include <string>
using namespace std;
class SimpleCalculator
{
public:
int calculate(string input)
{
int a, b, res = 0;
char c;
sscanf(input.c_str(),"%d%c%d",&a,&c,&b);
if (c == '+')
res = a + b; else
if (c == '-')
res = a - b; else
if (c == '*')
res = a * b; else
if (c == '/')
res = a / b;
return res;
}
};