Thử thách này được lấy cảm hứng từ việc lập trình một vi điều khiển Arduino. Tôi có 6 đèn LED và 6 nút được kết nối với các chân khác nhau trên bảng. Trong mã, mỗi nút và đèn LED được gán một số ID (1-6). Số pin (từ 0-13) tương ứng với số ID được tra cứu bằng cách sử dụng switch
câu lệnh. Hoàn toàn để giải trí, tôi đã tự hỏi liệu những switch
es này có thể bị phá vỡ bằng một hàm số học / chức năng khác chỉ để làm cho những người duy trì mã trong tương lai kinh hoàng.
Các thách thức
Cung cấp hàm / hàm lấy số ID (số nguyên) làm tham số và trả về số pin (số nguyên) cho 6 đèn LED và / hoặc 6 nút, mà không sử dụng các câu lệnh có điều kiện (không if
, không switch
và không có ternary).
Trả về giá trị cho đèn LED:
ID Pin
1 3
2 5
3 6
4 9
5 10
6 11
Trả về giá trị cho các nút:
ID Pin
1 2
2 4
3 7
4 8
5 12
6 13
Phần thưởng thử thách
Cung cấp một hàm duy nhất lấy số ID (số nguyên) và tham số thứ hai (bất kỳ loại nào) cho biết liệu đèn LED hoặc chân nút có được yêu cầu hay không và trả về chân (số nguyên) tương ứng.
Quy tắc
Đây không phải là một thách thức dành riêng cho Arduino. Sử dụng bất kỳ ngôn ngữ , làm bất cứ điều gì bạn muốn.
Chỉnh sửa: theo gợi ý của steveverril , đây hiện là một thử thách golf mã .
Chúc may mắn!
(Nếu bạn vẫn đang đọc: mặc dù vô lý và tùy tiện theo tiêu chuẩn lập trình, các ánh xạ được dựa trên sơ đồ chân của Arduino Micro. , các nút được gán cho các chân còn lại)
1+(1==1)
?
if
, switch
và ternary) đang tắt giới hạn.