ปริศนาการเขียนโปรแกรมนี้ได้รับแรงบันดาลใจจากคำถามอื่นที่ถูกถามเมื่อวานนี้ แต่ถูกลบโดยผู้เขียน ...
ความท้าทาย:
สร้างไบนารีที่รันได้ (Windows .EXE หรือไบนารี Linux) โดยใช้ Visual C # (หรือ C # IDE ที่คุณชื่นชอบ) ซึ่งพิมพ์ข้อความต่อไปนี้ไปยังเอาต์พุตมาตรฐาน:
Main() is the main method of C# programs!
... โดยไม่ต้องใช้ตัวอักษรต่อเนื่อง 4 ตัวหลักปรากฏในไฟล์ต้นฉบับ!
หมายเหตุ:
- หากซอร์สโค้ดของคุณมีข้อความ
remainder
(ตัวอย่าง) มันจะมีตัวอักษรต่อเนื่องกัน 4 ตัวหลักอย่างไรก็ตามถ้ามันมีmxain
ตัวอักษร 4 ตัวจะไม่ต่อเนื่องกันดังนั้นmxain
จะได้รับอนุญาต คุณไม่ได้รับอนุญาตให้เรียกใช้โปรแกรมใด ๆ ยกเว้น C # IDE หรือเปลี่ยนการตั้งค่าของ C # IDE เพื่อเรียกใช้โปรแกรมอื่น (แต่โปรแกรมที่ปกติจะรันเช่นคอมไพเลอร์ C #)
มิฉะนั้นคุณก็สามารถพูดได้ว่า: "ฉันเขียนโปรแกรมภาษาปาสคาลโดยใช้ C # IDE และเรียกใช้ตัวแปลภาษาปาสคาลในขั้นตอน 'สร้างล่วงหน้า' ของโครงการ C # ของฉัน"
มันจะง่ายเกินไป
ผู้ใช้ของ IDE ที่สามารถขยายได้โดยใช้ "ปลั๊กอิน" (หรือคล้ายกัน) หรือที่มีการสร้างขึ้นในการแก้ไขไฟล์ไบนารี (ฐานสิบหกบรรณาธิการ) จะมีมากเกินไปได้เปรียบที่มีขนาดใหญ่กว่าผู้ใช้อื่น ๆ IDEs C #
ดังนั้นคุณสมบัติเหล่านี้จึงไม่ควรใช้
- การใช้งานอื่นที่ไม่ใช่ ASCII-Editors (เช่นตัวแก้ไขหน้าต่างโต้ตอบ) ได้รับอนุญาตอย่างชัดเจน!
- ผู้ใช้ถามคำถามเดิมที่เสนอโดยใช้เครื่องหมายแบ็กสแลชในชื่อฟังก์ชันดังนี้:
static void M\u0061in()
เนื่องจากคำตอบนี้ถูกอ่านโดยผู้ใช้คนอื่นแล้วจะไม่ได้รับการยอมรับอีกต่อไป! - ผู้ใช้ถามว่าจะอนุญาตให้พิมพ์ไฟล์. EXE ในตัวแก้ไขซอร์สโค้ดหรือไม่และบันทึกไฟล์เป็น ".exe" แทนที่จะเป็น ".cs" คำตอบ: ฉันสงสัยว่ามันเป็นไปได้เพราะทั้งไบนารี Windows และ Linux ที่ถูกต้องมี NUL ไบต์ อย่างไรก็ตามหากคุณพบว่าไบนารีที่ถูกต้องที่สามารถสร้างวิธีนี้คุณมีทางออกที่ถูกต้อง
ชื่อของไซต์นี้คือ "การเขียนโปรแกรมปริศนา&รหัสกอล์ฟ" - นี่คือ "การเขียนโปรแกรมปริศนา" ไม่ใช่ "รหัสกอล์ฟ": ความท้าทายคือการหาวิธีการแก้ปัญหาการทำงานก่อนที่ผู้ใช้อื่น ๆ ทั้งหมดไม่หาวิธีสั้นกว่าอื่น ๆ การแก้ปัญหา
ดังนั้นโพสต์แรกที่อธิบายวิธีการแก้ปัญหาการทำงานชนะ !
โชคดี!
โดยวิธีการ: ฉันมีวิธีแก้ปัญหาทำงานภายใต้ Visual C # Express 2010