Пример #1
0
        //trừ
        SoLon Tru(SoLon b)
        {
            if (b.ToString() == "0")
            {
                return(this);
            }
            else if (ToString() == "0")
            {
                return(b);
            }
            var max = Math.Max(arr.Length, b.arr.Length);

            if (arr.Length < max)
            {
                arr = MakeSameLength(arr, max);
            }
            if (b.arr.Length < max)
            {
                b.arr = MakeSameLength(b.arr, max);
            }
            var nho = 0;
            var ret = new int[max];

            for (int i = max - 1; i >= 0; i--)
            {
                var hieu = arr[i] - b.arr[i];
                if (nho == 1)
                {
                    hieu -= 1;
                    nho   = 0;
                }
                if (hieu < 0)
                {
                    hieu += 10;
                    nho   = 1;
                }
                ret[i] = hieu;
            }
            if (nho != 0)
            {
                ret[0] = ret[0] - nho;
            }
            return(new SoLon(ret));
        }
Пример #2
0
        //cộng
        SoLon Cong(SoLon b)
        {
            if (ToString() == "0")
            {
                return(b);
            }
            if (b.ToString() == "0")
            {
                return(this);
            }
            var max = Math.Max(this.arr.Length, b.arr.Length);

            if (this.arr.Length < max)
            {
                this.arr = MakeSameLength(arr, max);
            }
            if (b.arr.Length < max)
            {
                b.arr = MakeSameLength(b.arr, max);
            }
            var ret = new int[max + 1];
            int nho = 0;

            for (int i = max - 1; i >= 0; i--)
            {
                var tong = arr[i] + b.arr[i];
                if (nho != 0)
                {
                    tong++;
                    nho = 0;
                }
                if (tong > 9)
                {
                    nho   = 1;
                    tong -= 10;
                }
                ret[i + 1] = tong;
            }
            if (nho != 0)
            {
                ret[0] = nho;
            }
            return(new SoLon(ret));
        }