Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Необходимо реализовать класс Num
У класса должны быть:
Конструктор принимающий value
и modulo
При этом если modulo == 0
, value
сохраняется без изменений, иначе value
берется по модулю modulo
Конструктор копирования, копирующий оба поля
Функция Num plus(Num rhs)
складывающая 2 числа, modulo
результата при этом равно максимальному
Функция Num plus(int rhs)
складывающая 2 числа, modulo
результата при этом равно this.modulo
Функции разности: Num minus(Num rhs)
, Num minus(int rhs)
, результаты аналогично сложению
Функции умножения: Num mult(Num rhs)
, Num mult(int rhs)
, результаты аналогично сложению
Функция-геттер getValue
возвращающая value
Функция-геттер getModulo
возвращающая modulo
При всех операциях value
берется по модулю modulo
public class Num
{
Num(int value, int modulo) { ... }
Num(Num num) { ... }
Num plus(Num rhs) { ... }
Num plus(int rhs) { ... }
Num mult(Num rhs) { ... }
Num mult(int rhs) { ... }
Num minus(Num rhs) { ... }
Num minus(int rhs) { ... }
int getModulo() { ... }
int getValue() { ... }
}
Пример теста
Num a = new Num(5, 10);
Num b = new Num(4, 15);
Num c = a.mult(b);
Num d = c.mult(5);
req(c.getValue() == 5);
req(c.getModulo() == 15);
req(d.getValue() == 10);
req(d.getModulo() == 15)
Файл с решением должен содержать только реализацию описанного класса