01/10/2018, 11:20
Challenge: Tìm số lớn nhất trong 5 số nguyên
Bài này mình được giao từ hồi lớp 8, đến giờ vẫn chưa giải được. Mời anh em diễn đàn vào làm thử:
Dùng tất cả các ngôn ngữ có thể, tìm ra số lớn nhất trong 5 số nguyên. Yêu cầu:
- Dùng ít hơn 5 lần if. Đề gốc là dùng <= 3 lần if. Mọi hình thức khác của if như
(a > b) ? a : b
đều không được chấp nhận.
- Không được dùng vòng lặp.
- Không dùng hàm
max()
hoặcmin()
có sẵn của ngôn ngữ lập trình bạn sử dụng. - Không được dùng mảng.
Bài liên quan
Hi HK boy.
Vứt mấy cái bài này đi. Thích thì chạy vòng for xếp mảng 5 phần tử.
Đề gốc tính sau.
Có được phép dùng mảng và hàm sắp xếp mảng không?
Quên mất. Không được dùng mảng nhé.
Làm vui mà, đừng nghiêm túc quá :v
Hi HK boy.
Bạn ném cái if vào trong hàm rồi gọi lại hàm.
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
#include #include int main(/*int argc, char *argv[]*/) { int a = 10; int b = 22; auto maxof = [](int a, int b){ return (abs(a - b) + (a + b)) / 2; }; std::cout
Cần float thì mình xài thêm Template
Thế này khác gì 4 lần if đâu bác :v
Hi Dark.Hades.
Liệu dùng trị tuyệt đối cho cả 5 thăng được không nhỉ ?
Hi HK boy.
Thay hàm max trị truyệt đối vào. @_@!
Hoy, hỏi số nguyên đã :v mà đây mới là 2 số mà, bác viết thêm 5 số cho đủ bộ :v
mặc dù mình biết là viết 5 số cũng tương tự thôi :v
Không dùng if luôn:
[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
#include #include #include int main(/*int argc, char *argv[]*/) { std::vector a = {2,3,1,5,4}; auto maxof = [](const std::vector &a){ int max = a.fr
Các bác đổi thuật nhanh quá, mình viết vội cũng k kịp
Không xài mảng bác ơi :v
Thế thôi để lát về đổi thành recursive, đọc đề k kĩ
n số tìm max thì tối thiểu cần n-1 phép ss, ko ăn gian dc đâu
Chắc không chơi hàm dựng sẵn.
Ngôn ngữ Erlang, bản thân cú pháp không có if, không for
Dùng bitwise nhé bạn, done
Mặc dù đọc phép toán bit không hiểu gì nhưng vẫn like