Phép chia 2 số nguyên lớn không dư sử dụng chuỗi

Chào anh em . Em muốn chia 2 số nguyên lớn không dư sử dụng chuỗi , ai có code mẫu hoặc ý tưởng thì giúp em với ạ.

Bạn muốn tính thương thực á? Thế thì bạn muốn lấy bao nhiêu chữ số ở phần thập phân?

Chia như học sinh cấp 1 tính tay ấy.

Dùng vector nhé :slight_smile: Không nên dùng chung dạng hiển thị và dạng biểu diễn (để tính), vì đa số ứng dụng không cần hiện những số như vầy.

À muh “nếu mà không biết thì tra Google” :v

2 Likes

Em chỉ cần ra phần nguyên thôi. Còn ý tưởng học sinh lớp 1 thì em đã xem qua rồi nếu 2 số to chia cho nhau thì sao làm được

Em không muốn sử dụng vector anh ơi @@

Thì tương tự thôi có gì đâu. Xem qua ý tưởng rồi mà vẫn chưa ngộ ra thuật toán sao?

a là số bị chia, b là số chia.

  • Lấy ra length(b) chữ số đầu tiên của a.
  • Nếu số đã lấy >= b, chia cho b, nếu không thì hạ tiếp chữ số tiếp theo ghép vào số đã lấy.
  • Lấy phần dư của phép chia trên, hạ xuống, lấy tiếp chữ số tiếp theo.
  • Tiếp tục làm lại từ bước 2.

Em khó nhất đoạn 2 số bằng nhau chia cho nhau nếu 2 số to thì sao làm được ạ

int q(BigInt a, BigInt b) {
    for (int res = 0; ; res++)
        if (mul(b, res) > a) return res - 1;
}

Vâng . Em cảm ơn anh

Code mẫu nè
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/math/BigInteger.java

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?