30/09/2018, 17:43
Tìm ý tưởng để thực hiện phép chia trên số lớn?
Chào mọi người. Mình đang làm bài +, -, *, / số nguyên cực lớn. Mình đã giải được thuật toán: +, -, * rồi.
Làm đến / thì thấy bí quá. Các bạn góp ý giúp mình về ý tưởng và cách làm với. Mình chỉ cần hướng cách để giải thôi chứ không cần code. Xin cảm ơn!
Bài liên quan
Anh down cuốn
Tài liệu giáo khoa chuyên tin quyển 1
trang 24 trở đi có nói về xử lý số nguyên lớn, anh xem thử.Chia như hồi học cấp 1 ấy bạn. VD: 475 / 5
4 / 5 ko đc, lấy tiếp chữ số sau nó được 47
47 / 5 = 9 dư 2
2 / 5 ko được, lấy tiếp chữ số sau nó
25 / 5 = 5
vậy kết quả là 95
Bạn có thể tham khảo code của mình bigint divmod. Dùng thuật toán recrusive để chia( hình như chậm hơn cả naive)
Một bạn trả lời trên page
Cách này khả thi khi số bị chia nhỏ thôi
Cách đơn giản dễ code (chắc là vậy )
a/b = số lần a=a-b đến khi nào a < b
Với trg hợp a < b thì nhớ thêm 1 và trừ.
Ví dụ nhé:
Nhưng nếu muốn thập phân ta làm tiếp
Ví dụ 1/3
Tiếp tục phần thập phân:
Nhưng lúc này dó chúng ta ở phần thập phân rồi nên khỏi cần dấu “chấm”
Nên tiếp tục mượn 1 và chia.
Thì trục trặc ở đây là 10/3 = 3,(3)
Nên kết hợp với thuật toán tìm chu kỳ nữa là xong ^^
E xin chân thành cảm ơn những chia sẻ của các a ạ <3