lurker นานมากโปสเตอร์ครั้งแรกที่นี่
เขียนโปรแกรมที่มี 3 อินพุต: X, Y และ Z
- X = ข้าม (คอลัมน์)
- Y = ลง (แถว)
- Z = เครื่องหมายบอกตำแหน่ง
โปรแกรมควรพิมพ์กริด visual X ข้ามและ Y ลง กริดนี้สามารถสร้างตัวละครใดก็ได้ยกเว้น "+" 'สถานที่ตั้ง' แต่ละแห่งจะได้รับหมายเลขดัชนีนับจาก1ที่พิกัด 1, 1 ข้ามและจากนั้นลงไปจนถึงจุดสิ้นสุด
X และ Y จะต้องมีอย่างน้อย 3 เสมอและ Z จะไม่มีวันยิ่งใหญ่กว่าX * Y
นี้
Z จะแสดงตำแหน่งที่พิมพ์เป็น "+" บนตำแหน่งรวมทั้งตัวอักษรซ้ายขวาขึ้นและลง 1 ตัว ตัวอย่างเช่น:
+
+++
+
สุดท้ายหากอักขระ + จะดักจับขอบ (ส่วนบนสุด, ซ้ายสุด, ขวาสุดและ / หรือลงสุดขอบ), + จะเด้งกลับไปตามแกนเดียวกันและล้นด้านอื่น ๆ
ตัวอย่าง: อินพุต = 5, 5, 13
-----
--+--
-+++-
--+--
-----
อินพุต = 10, 10, 10
-------+++
---------+
---------+
----------
----------
----------
----------
----------
----------
----------
อินพุต = 10, 10, 21
----------
+---------
+++-------
+---------
----------
----------
----------
----------
----------
----------
แก้ไข: ไม่ใช่สแควร์ตัวอย่าง 16,3,32
---------------+
-------------+++
---------------+
ฉันคิดว่าฉันได้ครอบคลุมทุกอย่าง ไม่ควรมีการ จำกัด อินพุต แต่ถ้าโปรแกรมของคุณต้องการให้ปิดที่ 64 * 64
จุดโบนัส (ฉันสามารถทำสิ่งนั้นได้หรือไม่?):อินพุต Z ไม่ควร> X * Y แต่ถ้ามันใหญ่กว่า Y * Z ให้เอาจุดศูนย์กลาง + ไปที่กึ่งกลางของตาราง
แก้ไข:อินพุต Z ไม่สามารถมากกว่า X * Y
แก้ไข 2: ทำการเปลี่ยนแปลง X และ Y เพื่อหวังว่าจะชัดเจนขึ้น
นี่คือรหัสกอล์ฟรหัสที่สั้นที่สุดชนะ