Esempio n. 1
0
        public string Multiply(string num1, string num2)
        {
            var a      = new MyBigInt(num1);
            var b      = new MyBigInt(num2);
            var result = a.Multiply(b);

            return(result.ToString());
        }
Esempio n. 2
0
            public MyBigInt Multiply(MyBigInt secondOperator)
            {
                var sumsCount  = secondOperator._list.Count;
                var multiplies = new MyBigInt[sumsCount];

                for (int i = 0; i < sumsCount; i++)
                {
                    multiplies[i] = this.Multiply(secondOperator._list[i]);
                }

                var result      = new List <int>();
                var r           = 0;
                var digitsCount = sumsCount + multiplies[sumsCount - 1]._list.Count;

                for (int i = 0; i < digitsCount; i++)
                {
                    var currentSum = r;
                    var indexFound = false;
                    for (int j = 0; j < sumsCount; j++)
                    {
                        var actualIndex = i - j;
                        if (actualIndex >= 0 && actualIndex < multiplies[j]._list.Count)
                        {
                            currentSum += multiplies[j]._list[actualIndex];
                            indexFound  = true;
                        }
                    }
                    if (indexFound)
                    {
                        result.Add(currentSum % 10);
                        r = currentSum / 10;
                    }
                }

                AddRest(result, r);
                return(new MyBigInt(result));
            }