ยินดีต้อนรับสู่โลกของคอมไพเลอร์กอล์ฟ งานของคุณคือการเขียนโปรแกรมที่สร้างโปรแกรมอื่นเพื่อเล่นตัวแปรของ FizzBuzz บนสเปค
คอมไพเลอร์ของคุณ
เขียนคอมไพเลอร์ที่สร้างตัวแปรของโปรแกรม FizzBuzz ให้เป็นข้อมูลจำเพาะ ข้อมูลจำเพาะของชุดตัวเลือกนี้จะแสดงในรูปแบบของอาร์เรย์ของคู่จำนวนเต็ม / สตริง
- ข้อมูลที่ป้อนอาจอยู่ในรูปแบบใดก็ได้ที่สะดวกกับภาษาของคุณ (ตัวอย่างของฉันใช้ n: xxxx แต่นี่ใช้เพื่อเป็นตัวอย่างเท่านั้น)
- แต่ละอินพุตจำนวนเต็มสามารถใช้ได้หนึ่งครั้งต่อการเรียกใช้คอมไพเลอร์ของคุณ
- จำนวนเต็มของแต่ละคู่จะมีค่าอย่างน้อยหนึ่งคู่
- สตริงของแต่ละคู่จะประกอบด้วยตัวอักษร ASCII เพียงสี่ตัวเท่านั้น
- ผลลัพธ์จะต้องเป็นโปรแกรมสมบูรณ์แบบเดียวที่เป็นไปตามกฎด้านล่าง
- ผลลัพธ์อาจอยู่ในรูปแบบที่สะดวกใด ๆ ตราบใดที่มันเป็นโปรแกรมต้นฉบับเดิม (ดังนั้นจึงไม่มีการแสดงออกแลมบ์ดาที่ส่งคืน)
พฤติกรรมไม่ได้ถูกกำหนดไว้สำหรับอินพุตที่ไม่เป็นไปตามกฎข้างต้น
โปรแกรม FizzBuzz ที่คุณสร้างขึ้น
โปรแกรมที่สร้างขึ้นโดยคอมไพเลอร์ของคุณจะใช้เป็นจำนวนเต็มเดียวnเป็น input มันจะส่งออกลำดับของตัวเลขเริ่มต้นจากหนึ่งถึงและรวมถึงnแทนที่ตัวเลขด้วยสตริง FizzBuzz เมื่อจำเป็น
- โปรแกรมที่สร้างขึ้นต้องเป็นภาษาเดียวกันกับคอมไพเลอร์
- อินพุตnอาจอยู่ในรูปแบบใดก็ได้ที่สะดวกกับภาษาของคุณ
- nจะมีค่าอย่างน้อยหนึ่งค่า
- จำนวนที่เป็นจำนวนเต็มอย่างน้อยหนึ่งในจำนวนเต็มเข้ากับคอมไพเลอร์จะต้องถูกแทนที่ด้วยสตริงทั้งหมดที่จับคู่กับจำนวนเต็มเหล่านั้นรวมเข้าด้วยกัน
- จำนวนที่จะไม่ถูกแทนที่ด้วยสตริง FizzBuzz จะต้องส่งออกใน ASCII ทศนิยม
ตัวอย่างเช่น;
> GenFizzBuzz 3:Fizz 5:Buzz
> a.out 5
1
2
Fizz
4
Buzz
เกณฑ์การให้คะแนน
ผลงานของคุณจะได้รับคะแนนตามความยาวของโปรแกรมที่คอมไพเลอร์ของคุณสร้างขึ้นตามความยาวของคอมไพเลอร์ของคุณ รันคอมไพเลอร์ของคุณหลาย ๆ ครั้งด้วยพารามิเตอร์ต่อไปนี้และเพิ่มความยาวของโปรแกรมที่สร้างขึ้นพร้อมกับความยาวของคอมไพเลอร์เพื่อค้นหาคะแนนของคุณ
- เพียงแค่นับ (ไม่มีอินพุต - โปรแกรมที่สร้างขึ้นจะนับ 1 ถึงnโดยไม่ต้องเปลี่ยนใหม่)
- แค่กอล์ฟ (1: กอล์ฟ - โปรแกรมที่สร้างขึ้นจะส่งออก "กอล์ฟ" nครั้ง)
- คลาสสิก FizzBuzz (3: Fizz, 5: Buzz)
(โปรดทราบว่าคอมไพเลอร์ของคุณจำเป็นต้องสร้างรหัสสำหรับอินพุตที่ถูกต้องไม่ใช่เฉพาะสิ่งที่แสดงไว้)