Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 19 kết quả

Đề tài: Phép chia số nguyên lớn!

  1. #1
    No Avatar
    pen&pen Khách

    Thumbs up Phép chia số nguyên lớn!

    Mình đang làm bài số nguyên lớn. Mình làm được phép cộng, trừ ,nhân rồi nhưng đến phép chia thì hơi búi ....Bạn nào có thể giới thiệu qua cho mình cách làm hay thuật toán phép chia không?
    Không biết hỏi kiểu như thế này có bị xem là phạm quy không nữa. HiHi!
    Bạn nào biết thì giúp mình nhen! Cảm ơn nhiều!

  2. #2
    Ngày gia nhập
    07 2008
    Bài viết
    21

    Trích dẫn Nguyên bản được gửi bởi pen&pen Xem bài viết
    Mình đang làm bài số nguyên lớn. Mình làm được phép cộng, trừ ,nhân rồi nhưng đến phép chia thì hơi búi ....Bạn nào có thể giới thiệu qua cho mình cách làm hay thuật toán phép chia không?
    Không biết hỏi kiểu như thế này có bị xem là phạm quy không nữa. HiHi!
    Bạn nào biết thì giúp mình nhen! Cảm ơn nhiều!
    có phải phép nhân bạn thực hiện cộng dồn không?
    vậy thì phép chia bạn làm ngược lại đi
    trừ cho đến khi nào hiệu nhỏ hơn số trừ thì thôi
    dùng 1 biến đếm lưu số lần thực hiện phép trừ đó chính là thương của phép chia
    Ví dụ:
    15/7 có thể làm như sau:
    15-7=8>7; cout=1
    8-7=1<7 ; cout=2
    Vậy thương của phép chia 15/7 là 2
    Nếu bạn đã làm tốt phép cộng số nguyên lớn thì mình nghĩ phép nhân, chia cũng từ đó mà ra cả
    (post vội vàng còn đi học không bít có chỗ nào sai không????)
    PhI nGự4 trÊn gI4Ng Hồ
    t4 mẶc sỨc TiÊu Gi40
    4nH hÙnG kHônG uỐn gỐi
    Dù gÁi đẸp NhưỜnG nÀo

  3. #3
    Ngày gia nhập
    11 2008
    Bài viết
    5

    Vậy chẳng lẽ lấy 1.000.000.000 chia cho 2 thì phải thực hiện 500.000.000 lần sao bạn? Phải nghĩ tới phương pháp tối ưu chứ!

  4. #4
    Ngày gia nhập
    01 2008
    Bài viết
    240

    Trích dẫn Nguyên bản được gửi bởi long.bkiter07 Xem bài viết
    Vậy chẳng lẽ lấy 1.000.000.000 chia cho 2 thì phải thực hiện 500.000.000 lần sao bạn? Phải nghĩ tới phương pháp tối ưu chứ!
    không biết áp dụng phép chia đa thức có được không nhỉ?
    Time

  5. #5
    No Avatar
    pen&pen Khách

    Sorry ! Lần trước post vội quá nên chưa nói rõ kiểu làm của mình.
    - Cách lưu trữ:đầu tiên nhập vào kiểu char, sau đó chuyển nó vào một danh sách liên kết(liên kết đôi) , có dùng hàm atoi() trong thư viện string để chuyển kiểu.
    - Phép cộng vÀ trừ làm theo cách truyền thống như hồi cấp 1 mình học ấy, cộng từ phần tử cuối, rồi chuyển dần sang phía bên trái...
    - Phép trừ tương tự
    - Phép nhân thì nhân lần lượt một phần tử rồi cộng lại với nhau
    Đó là mình nói qua loa thế thôi chứ tóm lại là như hồi cấp một mình học ấy.
    Nhưng phép chia thì mình gặp khó khkăn bởi vì chia thì không thể chia từng phần tử như nhân hay cộng trừ được...
    Có ai đã làm bài này rồi ko? Góp ý mình với , mình ko cần code chỉ là hướng dẫn cách làm cũng được, cụ thể vào!
    "Càng cụ thể thì ta càng dẽ hiểu;
    Càng dẽ hiểu thì ta lại càng dễ làm" kekeke
    Cảm ơn trước nhé!

  6. #6
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định Phép chia số nguyên lớn!

    có phải phép nhân bạn thực hiện cộng dồn không?
    vậy thì phép chia bạn làm ngược lại đi
    trừ cho đến khi nào hiệu nhỏ hơn số trừ thì thôi
    dùng 1 biến đếm lưu số lần thực hiện phép trừ đó chính là thương của phép chia
    Ví dụ:
    15/7 có thể làm như sau:
    15-7=8>7; cout=1
    8-7=1<7 ; cout=2
    Vậy thương của phép chia 15/7 là 2
    Nếu bạn đã làm tốt phép cộng số nguyên lớn thì mình nghĩ phép nhân, chia cũng từ đó mà ra cả
    (post vội vàng còn đi học không bít có chỗ nào sai không????)
    cũng làm tương tự như bạn này nhưng mình thêm chi tiết này cho nó tối ưu hơn thôi
    VD có số 12345 / 23
    ta xét đầu tiên lấy 2 số của số chia ( 12345)
    được số 12 /23 ==0 vậy ta thêm 1 số nữa để thực hiện phép chia
    123 /123 >0 vậy ta có kết quả đầu tiên là 5
    tiếp tục lây123 ( của số chia ) - 5 nhân với 23

    được dư là 8 + 34 được bao nhiêu lại chia cho 23 tiếp,cứ thế cho đến hết
    hehe cái này thì đúng nghĩa là chia bằng tay roài

    điều kiện cơ bản là bạn phải xây 1 hàm chia 2 số có cùng chữ số hoặc nhiều hơn 1 chữ số VD 12/10 hoặc 123/23 ,phép chia đó dựa vào thuật toán của bạn trên,không biết có cách nào tối ưu hơn không

  7. #7
    Ngày gia nhập
    11 2008
    Nơi ở
    Quảng Ngãi
    Bài viết
    0

    Tự làm cho quen đi chứ hỏi gì mà hỏi .Bạn chia bằng cách cứ trừ dần dần .

  8. #8
    No Avatar
    pen&pen Khách

    Cảm ơn ý kiến định hướng của mọi người!

  9. #9
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    Trích dẫn Nguyên bản được gửi bởi coder_gate Xem bài viết
    cũng làm tương tự như bạn này nhưng mình thêm chi tiết này cho nó tối ưu hơn thôi
    VD có số 12345 / 23
    ta xét đầu tiên lấy 2 số của số chia ( 12345)
    được số 12 /23 ==0 vậy ta thêm 1 số nữa để thực hiện phép chia
    123 /123 >0 vậy ta có kết quả đầu tiên là 5
    tiếp tục lây123 ( của số chia ) - 5 nhân với 23

    được dư là 8 + 34 được bao nhiêu lại chia cho 23 tiếp,cứ thế cho đến hết
    hehe cái này thì đúng nghĩa là chia bằng tay roài

    điều kiện cơ bản là bạn phải xây 1 hàm chia 2 số có cùng chữ số hoặc nhiều hơn 1 chữ số VD 12/10 hoặc 123/23 ,phép chia đó dựa vào thuật toán của bạn trên,không biết có cách nào tối ưu hơn không
    Ặc! cái này mà gọi là số nguyên lớn ầ? Buồn cười quá. 12345/23 ? Ha ha, số bé thế này thì anh em là cho hàm đọc vào 2 số a,b rồi gán cho c=float(a/b); cho nó nhanh.

    Còn thế nào là số lớn? Số lớn phải cỡ vài chục đến vài trăm chữ số, chứ còn khoảng 9,10 chữ số thì thôi các bác cứ làm như cái cách "cổ kính" kia của em cho nhanh, chắc là vẫn nằm trong giới hạn tính đó (khai báo là long int là ok).
    À mà còn nữa, làm như cái bác này thì nhập số có khoảng mười mấy chữ số là die luôn chứ máy chẳng có chịu chạy đâu, vượt quá giới hạn mà. Còn thuật toán kia thì phải nói là thật buồn cười (thuật toán dành cho cấc em lớp 1 mới đi học đây mà). Nếu như trong phạm vi tính toán mà lại đi làm theo thuật toán này thì đúng là thừa (so với cách của em thì dài lê thê).

    Thích số lớn thì vào đậy mà download http://forums.congdongcviet.com/showthread.php?t=13791

    Thôi chào các bác!

  10. #10
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Trích dẫn Nguyên bản được gửi bởi trubavuong Xem bài viết
    Ặc! cái này mà gọi là số nguyên lớn ầ? Buồn cười quá. 12345/23 ? Ha ha, số bé thế này thì anh em là cho hàm đọc vào 2 số a,b rồi gán cho c=float(a/b); cho nó nhanh.

    Còn thế nào là số lớn? Số lớn phải cỡ vài chục đến vài trăm chữ số, chứ còn khoảng 9,10 chữ số thì thôi các bác cứ làm như cái cách "cổ kính" kia của em cho nhanh, chắc là vẫn nằm trong giới hạn tính đó (khai báo là long int là ok).
    À mà còn nữa, làm như cái bác này thì nhập số có khoảng mười mấy chữ số là die luôn chứ máy chẳng có chịu chạy đâu, vượt quá giới hạn mà. Còn thuật toán kia thì phải nói là thật buồn cười (thuật toán dành cho cấc em lớp 1 mới đi học đây mà). Nếu như trong phạm vi tính toán mà lại đi làm theo thuật toán này thì đúng là thừa (so với cách của em thì dài lê thê).

    Thích số lớn thì vào đậy mà download http://forums.congdongcviet.com/showthread.php?t=13791

    Thôi chào các bác!
    cậu em chắc là chẳng hiểu gì nên nói hơi có phần lỗ mãng thiếu suy nghĩ...trải qua bao nhiêu chuyện mà không bỏ được cái thói ngựa non háu đá,đúng thật là khó đào tạo,tôi VD thì đương nhiên là phải VD số nhỏ chứ ai dại gì đi đưa số to vào viết làm gì,chỉ là viết để cho mọi người hiểu thôi chứ,thuật toán xây dựng trên chuỗi thì đâu quan trọng gì số to số nhỏ,bao nhiêu chữ số chẳng được,có phải là dạng float,long đâu mà giới hạn chữ số

Các đề tài tương tự

  1. Trả lời: 4
    Bài viết cuối: 09-02-2012, 10:42 PM
  2. Kỹ thuật C++ Lời giải về Chuỗi Ký tự,mảng số nguyên 1 chiều,mảng 2 chiều,tạo Menu
    Gửi bởi xuanngoc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 15-10-2011, 01:54 AM
  3. Lời giải bài tập: Chuỗi Ký tự, mảng số nguyên 1 chiều, mảng 2 chiều, tạo Menu
    Gửi bởi xuanngoc trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 15-10-2011, 01:17 AM
  4. tìm số nguyên tố có trong mảng 2 chiều, tính tổng các số nguyên tố đó??
    Gửi bởi lesliuton01 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 08-06-2010, 10:21 AM
  5. mảng 1 chiều | Kiểm tra mảng có chứa số nguyên tố???
    Gửi bởi namekct trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 11-01-2010, 09:46 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn