e-olymp 9531. Комплексные числа: сложение и вычитание

Условие

Даны два комплексных числа. Найдите их сумму или разность.

Входные данные

В каждой строке задан пример на сложение или вычитание комплексных чисел. Комплексное число задается в формате $a+bi$ или $a — bi$, где $a$ целое, $b$ целое неотрицательное. Действительная и мнимая часть каждого комплексного числа по модулю не превышает $10^{9}$.

Выходные данные

Для каждого входного примера выведите ответ в отдельной строке.

Тесты

Входные данные

Выходные данные

1
2+3i + 7-4i
9-1i
2
-1-1i — -1-1i
0+0i
3 56743+876i — 1234-124i 55509+1000i
4 331+10i — 331+10i 0+0i

Код

Решение

Чтобы решить задачу будем разбивать строки на подстроки методом .split() тогда, для каждой строки у нас будет массив из трёх её подстрок, где первый и третий элементы — комплексные числа, а второй — арифметическая операция производимая над ними. Далее оба комплексных числа так же, с помощью .split(), разобьем на реальную и мнимую части и выполним сложение или вычитание соответственных элементов.

Ссылки

E-olymp

Ideone

e-olymp 313. A + B

A + B

Пете задали домашнее задание: найти сумму 2-х натуральных чисел A и B.

Входные данные

В первой строке задано количество заданных Пете примеров N, а далее следует N строк в формате A+B, где A и B — 2 заданных натуральных числа, между ними без пробелов символ выполнения действия сложения «+».
Соответствие входных данных указанному формату гарантируется (см. пример входных данных). Входные данные не превышают $10^{500}$. $(0 < N <= 250)$

Выходные данные

В N строках вывести искомые суммы.

Тесты

# ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ
1 $2$
$5+3$
$14818641113280510+52467$
$8$
$14818641113332977$
2 $1$
$0+0$
$0$
3 $3$
$1+1$
$1+2$
$1+3$
$2$
$3$
$4$
4 $2$
$123123123 + 321321321$
$321321321 + 123123123$
$444444444$
$444444444$

 

Код программы

Решение задачи

Для решения данной задачи будем использовать класс BigInteger, поскольку в наших вычислениях могут получиться числа, превышающие максимальное значение класса Long. k-тым элементом обозначим символ «+». Далее, складываем все элементы до k-того элемента и после него, переводя эти числа в объект класса BigInteger.

Ссылки

• Задача на e-olymp.

• Решение на сайте ideone.