Метод big.Int.Mod

Метод Mod типа big.Int вычисляет остаток от деления приемника (значения, у которого вызывается метод) на переданный делитель. Метод возвращает новый указатель на big.Int, содержащий результат операции. Первым параметром передается делитель, вторым параметром - делимое. Важно отметить, что результат всегда имеет тот же знак, что и делитель (а не делимое, как в обычных языках программирования). Метод не изменяет значение приемника.

Синтаксис

gofunc (z *Int) Mod(x, y *Int) *Int

Пример

Давайте вычислим остаток от деления 10 на 3:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(10)
  y := big.NewInt(3)
  z := new(big.Int)

  res := z.Mod(x, y)
  fmt.Println(res)
}

Результат выполнения кода:

go1

Пример

Давайте вычислим остаток от деления 10 на 3 с отрицательным делителем:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(10)
  y := big.NewInt(-3)
  z := new(big.Int)

  res := z.Mod(x, y)
  fmt.Println(res)
}

Результат выполнения кода:

go-2

Пример

Метод Mod не изменяет значение приемника. Давайте это проверим:

gopackage main

import (
  "fmt"
  "math/big"
)

func main() {
  x := big.NewInt(10)
  y := big.NewInt(3)
  z := new(big.Int)

  z.Mod(x, y)
  fmt.Println("x:", x)
  fmt.Println("z:", z)
}

Результат выполнения кода:

go"x: 10"
"z: 1"

Смотрите также

  • метод big.Int.Div,
    который выполняет целочисленное деление больших чисел
  • метод big.Int.Add,
    который складывает два больших целых числа
  • метод big.Int.Sub,
    который вычитает одно большое целое число из другого
  • метод big.Int.Mul,
    который умножает два больших целых числа