Как умножать большие числа

«Как умножать большие числа» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для умножения больших чисел в Android (например, BigInteger) используйте класс BigInteger, т.к. примитивные типы могут вызвать переполнение.

val bigNum1 = BigInteger("12345678901234567890")
val bigNum2 = BigInteger("98765432109876543210")
val result = bigNum1.multiply(bigNum2)  
println(result) // 1219326311370217952237463801111263526900  

Нюансы:

  • BigInteger неизменяем (immutable), операции возвращают новый объект.
  • Работает медленнее примитивов, но безопаснее для больших чисел.
  • Поддерживает другие операции: add(), subtract(), divide(), mod().

Для чисел с плавающей точкой используйте BigDecimal.