01/10/2018, 14:15
Xác định một số chia hết cho 3 mà không sử dụng + - * / %
- Tình hình là em có 1 vấn đề nhó nhỏ : Em muốn xác định 1 số chia hết cho 3 mà không được sử dụng các phép toán + , - * , : , div , mod , chỉ được dùng các toán tử so sánh . Bác nào biết chỉ giúp em với ạ !
Bài liên quan
Divide a number by 3 without using *, /, +, -, % operators
2 dòng thôi nhá
Hỏi ngoài luồng nhưng : Làm vậy để làm gì ? Sợ một ngày nào đó CPU không có khả năng thực hiện ±*/ ???
Để chứng tỏ tư’ss duy’ss bản thân trong các bài tập hay cuộc thi sanh dziên giỏi cấp tểnh và quớt dza :">
Bác vui tính quá :))
Chỉ biết cách mà chương trình nó biên dịch bác ạ chứ ngoài ra ai lại rảnh để thực hiện 1 cái đơn giản để biến thanh phức tạp vậy
Cái này làm gì như bác suy nghĩ đâu @@
Biết cách chương trình nó biên dịch thì xem trong listing của nó để thấy mã ASM hoặc dịch ngược file thực thi.
đây nhé, đáp án ở bên stackoverflow kia tủi loz
hehe chạy chậm như rùa bò
bắt đầu với i = 1, nhân 2 tới khi nào > n thì chia 2 lại và cộng 1 vào i, rồi cứ thế tới khi nào i == n thì dừng. ab là số dư trong phép chia i cho n. Nếu i chia n dư 1 thì i2 chia n sẽ dư -1, nếu i chia n dư -1 thì i2 chia n sẽ dư 1. Cứ thế mà phang chỉ cần 1 phép toán increment.
Mình đùa mà, nhạy cảm ghê
em có nói g căng đâu bác haha
Thank bác haha . Em phải tìm hiểu nhiều mới được :))
Haha vấn đề ở đâu k phải xem đoạn complie mà là để em hiểu sâu về ngôn ngữ lập trình ý
Hiểu sâu cứ ASM là chuẩn
2^(2k) chia 3 dư 1
2^(2k+1) chia 3 dư 2
Code có sử dụng hàm +1 trá hình, đơn giản hơn code của anh @tntxtnt 1 tí =))
UPD: Thêm trường hợp check số âm.
cách đơn giản hơn, “1 dòng” thôi
Cho phép em chơi xấu tí =))