예제 #1
0
        //phep tru
        static SoLon Tru(SoLon a, SoLon b)
        {
            if (b.ToString() == "0")
            {
                return(a);
            }
            else if (a.ToString() == "0")
            {
                return(b);
            }
            var max = Math.Max(a.arr.Length, b.arr.Length);


            var mangLon = MakeSameLength(a.arr, max);
            var mangNho = MakeSameLength(b.arr, max);

            if (a.Compareto(b) == -1)
            {
                mangLon = b.arr;
                mangNho = a.arr;
            }
            var ret = TruMang(mangLon, mangNho);

            return(new SoLon(ret));
        }
예제 #2
0
        // phep nhan
        static SoLon Nhan(SoLon a, SoLon b)
        {
            var mangLon = a.arr;
            var mangNho = KiemTraMangKhac0(b.arr);

            if (a.Compareto(b) == -1)
            {
                mangLon = b.arr;
                mangNho = KiemTraMangKhac0(a.arr);
            }
            var ret = new int[mangNho.Length];

            for (int i = 0; i < mangNho.Length; i++)
            {
                var x = NhanSoVoiMang(mangNho[mangNho.Length - 1 - i], mangLon);
                if (i > 0)
                {
                    x = Them10DonViChoSo(x, i);
                }
                ret = CongMang(x, ret);
            }

            return(new SoLon(ret.ToArray()));
        }