Câu đố lập trình này được lấy cảm hứng từ một câu hỏi khác đã được hỏi ở đây ngày hôm qua nhưng đã bị xóa bởi tác giả ...
Các thách thức:
Tạo tệp nhị phân thực thi (Windows .EXE hoặc Linux nhị phân) bằng Visual C # (hoặc IDE C # yêu thích của bạn) để in văn bản sau thành đầu ra tiêu chuẩn:
Main() is the main method of C# programs!
... mà không sử dụng 4 chữ cái MAIN liên tiếp xuất hiện trong bất kỳ tệp nguồn nào!
Ghi chú:
- Nếu mã nguồn của bạn chứa văn bản
remainder
(ví dụ), nó chứa 4 chữ cái MAIN liên tiếp, tuy nhiên nếu nó chứamxain
4 chữ cái thì sẽ không được liên tiếp nữa nênmxain
sẽ được phép. Bạn không được phép chạy bất kỳ chương trình nào ngoài IDE C # cũng như không thay đổi cài đặt của IDE C # để chạy các chương trình khác (nhưng những chương trình mà nó thường chạy như trình biên dịch C #).
Mặt khác, bạn có thể chỉ cần nói: "Tôi viết chương trình Pascal bằng C # IDE và gọi trình biên dịch Pascal trong các bước 'xây dựng trước' của dự án C # của tôi".
Điều này sẽ quá đơn giản.
Người dùng IDE có thể mở rộng bằng cách sử dụng "trình cắm" (hoặc tương tự) hoặc có trình chỉnh sửa tệp nhị phân tích hợp (trình chỉnh sửa hex) sẽ có lợi thế quá lớn so với người dùng IDE C # khác.
Do đó, những kỳ tích này cũng không nên được sử dụng.
- Sử dụng các Trình soạn thảo không phải ASCII khác (như trình soạn thảo cửa sổ hộp thoại) được cho phép rõ ràng!
- Người dùng hỏi câu hỏi ban đầu được đề xuất sử dụng dấu gạch chéo ngược trong các tên hàm giống như thế này:
static void M\u0061in()
Bởi vì câu trả lời này đã được người dùng khác đọc nên nó sẽ không được chấp nhận nữa! - Một người dùng đã hỏi liệu có được phép nhập tệp .EXE vào trình chỉnh sửa mã nguồn hay không và lưu tệp dưới dạng ".exe" thay vì ".cs". Trả lời: Tôi không nghi ngờ rằng điều này là có thể bởi vì cả hai nhị phân Windows và Linux hợp lệ đều chứa các byte NUL. Tuy nhiên nếu bạn tìm thấy một nhị phân hợp lệ có thể được tạo theo cách này, bạn có một giải pháp hợp lệ.
Tên của trang web này là "Câu đố lập trình & Golf Code" - đây là "Câu đố lập trình", không phải "Code Golf": Thách thức là tìm một giải pháp hoạt động trước tất cả người dùng khác, không tìm ra giải pháp nào ngắn hơn tất cả những người khác các giải pháp.
Vì vậy, bài viết đầu tiên mô tả một giải pháp làm việc chiến thắng !
Chúc may mắn!
Nhân tiện: Tôi có một giải pháp hoạt động theo Visual C # Express 2010.