Контест Junior Правило 0/3/5 обновлено
Длинная арифметика: класс BigUint и факториал
Условие
Напишите класс беззнакового длинного числа BigUint с умножением на uint32_t и выводом. Храните цифры в std::vector: тогда классу не нужны ни деструктор, ни копирование вручную (правило нуля). С его помощью посчитайте n! для каждого запроса.
Ввод: q (1 ≤ q ≤ 10), затем q чисел n (0 ≤ n ≤ 700).
Вывод: q строк: значения n! в десятичной записи.
Пример 1
Ввод:
3
0
5
20
Вывод:
1
120
2432902008176640000
Пример 2
Ввод:
2
1
25
Вывод:
1
15511210043330985984000000
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Ещё по теме «Правило 0/3/5»
- Что даёт copy-and-swap
- Как написать оператор присваивания
- Куда пропал конструктор по умолчанию
- Пустой деструктор и перемещение
- Когда не генерируется перемещение
- Что объявили и что сгенерирует компилятор
- Объявили перемещающий конструктор
- Почему move должен быть noexcept