/// <summary> /// Умножение больших чисел с учетом знака /// </summary> /// <param name="value">На что умножаем</param> /// <returns>Произведение</returns> public BigInteger Multiply(BigInteger value) { BigInteger a = this; BigInteger b = value; BigInteger ans; if (a.sign && b.sign) { return(a.AbsMultiply(b)); } else if (!a.sign && !b.sign) { a.ChangeSign(true); b.ChangeSign(true); ans = a.AbsMultiply(b); a.ChangeSign(false); b.ChangeSign(false); return(ans); } else if (!a.sign) { a.ChangeSign(true); b = a.AbsMultiply(b); b.sign = false; a.ChangeSign(false); return(b); } else { b.sign = true; a = a.AbsMultiply(b); a.sign = false; b.sign = false; return(a); } }