Метод big.Int.Mul
Метод big.Int.Mul выполняет умножение двух больших целых чисел и возвращает их произведение. Первым параметром метод принимает множимое, вторым — множитель. Результат умножения сохраняется в вызывающем объекте, который также возвращается для удобства цепочных вызовов. Метод работает с числами произвольной точности, что позволяет выполнять умножение чисел, выходящих за пределы стандартных целочисленных типов Go.
Синтаксис
func (z *big.Int) Mul(x, y *big.Int) *big.Int
Пример
Давайте умножим два больших целых числа:
package main
import (
"fmt"
"math/big"
)
func main() {
x := big.NewInt(123456789)
y := big.NewInt(987654321)
res := new(big.Int).Mul(x, y)
fmt.Println(res)
}
Результат выполнения кода:
"121932631112635269"
Пример
Давайте перемножим большие числа, которые не помещаются в 64-битный целочисленный тип:
package main
import (
"fmt"
"math/big"
)
func main() {
a := new(big.Int)
a.SetString("9223372036854775807", 10) // MaxInt64
b := new(big.Int)
b.SetString("9223372036854775807", 10) // MaxInt64
res := new(big.Int).Mul(a, b)
fmt.Println(res)
}
Результат выполнения кода:
"85070591730234615847396907784232501249"
Пример
Давайте используем цепочку вызовов для последовательного умножения:
package main
import (
"fmt"
"math/big"
)
func main() {
x := big.NewInt(2)
y := big.NewInt(3)
z := big.NewInt(4)
res := new(big.Int).Mul(x, y).Mul(res, z)
fmt.Println(res)
}
Результат выполнения кода:
"24"
Смотрите также
-
метод
big.Int.Add,
который выполняет сложение больших целых чисел -
метод
big.Int.Sub,
который выполняет вычитание больших целых чисел -
метод
big.Int.Div,
который выполняет деление больших целых чисел -
метод
big.Int.Exp,
который выполняет возведение в степень больших целых чисел