Có một câu hỏi trên trang web yêu cầu thực hiện phân chia mà không sử dụng phân chia.
Trong trường hợp của tôi, tôi yêu cầu bạn làm tương tự, nhưng chỉ sử dụng phép cộng.
Điều này có nghĩa là về cơ bản: phép cộng là toán tử hoặc hàm duy nhất được phép hoạt động trên các số và trả về các số khác (nghĩa là không trừ, nhân, lũy thừa, đảo ngược bit, v.v.). Những thứ như nếu các câu lệnh, toán tử gán và so sánh và cho các vòng lặp vẫn được cho phép, miễn là trong phạm vi đó, bạn vẫn chỉ sử dụng phép cộng.
Nhiệm vụ của bạn là xây dựng một hàm divide(a, b)
lấy hai số nguyên dương a
và b
trả về kết quả a
được chia cho b
và làm tròn về 0, nhưng sử dụng phép cộng và không có toán tử số học nào khác, và không có cấu trúc dữ liệu nào khác ngoài các số.
Mã này rằng chiến thắng sẽ là người đòi hỏi các hoạt động bổ sung ít nhất phải được thực hiện trên các thiết lập đầu vào nơi a
khác nhau từ 1
đến 200
và b
thay đổi từ 1
tới a
.
Để theo dõi điều này, bạn có thể xây dựng một phiên bản mã thay thế của mình thay thế mọi phiên bản a + b
với add(a, b)
và chương trình add
để tăng một add_used
biến toàn cục cũng như trả về tổng của hai số.