Задача
Пусть x — переменная, изначально равная 0. Промоделируйте выполнение следующих операций над ней:
- add a: прибавить значение a к x;
- subtract a: вычесть значение a из x;
- multiply a: умножить x на a;
Входные данные
Каждая строка содержит операцию и значение. Промоделируйте все операции. Значение переменной x при выполнении каждой операции не превышает по модулю $10^9$.
Выходные данные
Выведите результирующее значение переменной x.
Тесты
№ | Ввод | Вывод |
1 | add 2 subtract 5 subtract 1 multiply -3 |
12 |
2 | subtract 5 multiply -5 add 5 |
30 |
3 | add 6 add 543 multiply 23 |
12627 |
4 | multiply 45678 add 3 |
3 |
5 | subtract 58 add 38 multiply -1 add 100 |
120 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> using namespace std; int main() { int x = 0, a; string s; while (cin >> s){ cin >> a; if (s == "multiply") { x*=a; } else if (s == "subtract") { x-=a; } else { x+=a; } } cout << x; return 0; } |
Решение задачи
Инициализировав основную переменную x, через поток ввода считываем все действия, которые неоходимо применить по отношению к переменной. Во время этого ничего не выводим, дожидаясь, пока поток команд закончится. Заметим, что процесс ввода может длиться сколько угодно долго. В конце концов, на выходе получаем уже «преобразованный» x — результат проделанных дейсвтий.
Для отправки комментария необходимо войти на сайт.