public static String TongHopKQ(SoNguyenLon m1, SoNguyenLon m2, SoNguyenLon m3, int n) { String kq = ""; //System.out.println("Bat dau tong hop kq qua cuoi cung "); //m1.xuat(); //m2.xuat(); //m3.xuat(); for (int i = 0; i < n; i++) { m1.soNguyen += "0"; } for (int i = 0; i < n / 2; i++) { m2.soNguyen += "0"; } //System.out.println("Sau khi tong hop ket qua : " + m1.soNguyen + " " + m2.soNguyen + " " + m3.soNguyen); SoNguyenLon m1_m2 = SoNguyenLon.congHaiSoNguyenLon(m1, m2); SoNguyenLon dapAn = SoNguyenLon.congHaiSoNguyenLon(m1_m2, m3); kq = dapAn.soNguyen; return(kq); }
public static SoNguyenLon nhanSoNguyenLon(SoNguyenLon a, SoNguyenLon b) { //System.out.println("Bat dau nhan hai so nguyen lon : " + a.soNguyen + " và " + b.soNguyen); SoNguyenLon kq; int n; if (a.n < b.n) { n = b.n - a.n; for (int i = 0; i < n; i++) { a.soNguyen = "0" + a.soNguyen; } } else if (a.n > b.n) { n = a.n - b.n; for (int i = 0; i < n; i++) { b.soNguyen = "0" + b.soNguyen; } } else { n = a.n;//số lượng chữ số } if (n == 1) { int tich = int.Parse(a.soNguyen) * int.Parse(b.soNguyen); int dau = a.dau * b.dau; kq = new SoNguyenLon(tich + "", dau); return(kq); } else { SoNguyenLon A = new SoNguyenLon(a.tachSoLeft(), 1); //5 //A.xuat(); SoNguyenLon B = new SoNguyenLon(a.tachSoRight(), 1); //5 //B.xuat(); SoNguyenLon C = new SoNguyenLon(b.tachSoLeft(), 1); //5 //C.xuat(); SoNguyenLon D = new SoNguyenLon(b.tachSoRight(), 1); //5 //D.xuat(); SoNguyenLon m1 = SoNguyenLon.nhanSoNguyenLon(A, C); //System.out.println(A.soNguyen + " nhan " + C.soNguyen); //m1.xuat();//25 SoNguyenLon m2_A = SoNguyenLon.nhanSoNguyenLon(A, D); //System.out.println(A.soNguyen + " nhan " + D.soNguyen); //m2_A.xuat(); SoNguyenLon m2_B = SoNguyenLon.nhanSoNguyenLon(B, C); //System.out.println(B.soNguyen + " nhan " + C.soNguyen); //m2_B.xuat(); SoNguyenLon m2 = SoNguyenLon.congHaiSoNguyenLon(m2_A, m2_B); //System.out.println(m2_A.soNguyen + " cong " + m2_B.soNguyen); //m2.xuat();//0 SoNguyenLon m3 = SoNguyenLon.nhanSoNguyenLon(B, D); //System.out.println(B.soNguyen + " nhan " + D.soNguyen); //m3.xuat();//25 int dau = a.dau * b.dau; String tonghop = SoNguyenLon.TongHopKQ(m1, m2, m3, n); kq = new SoNguyenLon(tonghop, dau); } return(kq); }