예제 #1
0
        private static int[] subtractRes(BigInt firstNumberBiggerAbsThanSecond, BigInt second)
        {
            int[] minusOfaAndb = new int[Math.Max(firstNumberBiggerAbsThanSecond.number.Length, second.number.Length)];
            int   carry        = 0;

            for (int i = 0; i < Math.Max(firstNumberBiggerAbsThanSecond.number.Length, second.number.Length); ++i)
            {
                minusOfaAndb[i] += -carry + firstNumberBiggerAbsThanSecond.intAtDigits(i) - second.intAtDigits(i);
                carry            = minusOfaAndb[i] < 0 ? 1 : 0;
                if (carry == 1)
                {
                    minusOfaAndb[i] += BASE;
                }
            }
            return(deleteLeadingZerosOfArray(minusOfaAndb));
        }