แรงบันดาลใจจากสิ่งนี้
ในความท้าทายที่เชื่อมโยงเราจะขอให้เพิ่มองค์ประกอบของต้นฉบับและสิ่งที่ตรงกันข้ามของอาร์เรย์อินพุต ในความท้าทายนี้เราจะทำให้มันยากขึ้นเล็กน้อยโดยการแนะนำการดำเนินการทางคณิตศาสตร์ขั้นพื้นฐานอื่น ๆ
รับอาร์เรย์ของจำนวนเต็มวนไปเรื่อย ๆ โดย+, *, -, //, %, ^ที่การ//หารจำนวนเต็มและ^เลขชี้กำลังขณะที่ใช้มันกับด้านหลังของอาร์เรย์ หรือกล่าวอีกนัยหนึ่งให้ใช้หนึ่งในฟังก์ชั่นด้านบนกับแต่ละองค์ประกอบของอาเรย์โดยอาร์กิวเมนต์ที่สองนั้นเป็นสิ่งที่ตรงกันข้ามกับอาเรย์ สิ่งนี้อาจยังคงสับสนดังนั้นให้ลองทำตามตัวอย่าง
Input:   [1, 2, 3, 4, 5, 6, 7, 8, 9]
Reverse: [9, 8, 7, 6, 5, 4, 3, 2, 1]
         [ 1,  2,  3,  4,  5,    6,  7,  8,  9]
Operand:   +   *   -   /   %     ^   +   *   -
         [ 9,  8,  7,  6,  5,    4,  3,  2,  1]
Result:  [10, 16, -4,  0,  0, 1296, 10, 16,  8]
ดังนั้นผลลัพธ์สำหรับ[1, 2, 3, 4, 5, 6, 7, 8, 9]จะเป็น[10, 16, -4, 0, 0, 1296, 10, 16, 8]
เพื่อครอบคลุมกรณีมุมการป้อนข้อมูลจะไม่มีวันเป็น 0 แต่อาจมีจำนวนเต็มอื่น ๆ ในช่วงตั้งแต่อนันต์ลบจนถึงอินฟินิตี้บวก คุณสามารถรับอินพุตเป็นรายการสตริงที่แสดงถึงตัวเลขหากคุณต้องการ
กรณีทดสอบ
input => output
[1, 2, 3, 4, 5, 6, 7, 8, 9]     => [10, 16, -4, 0, 0, 1296, 10, 16, 8]
[5, 3, 6, 1, 1]                 => [6, 3, 0, 0, 1]
[2, 1, 8]                       => [10, 1, 6]
[11, 4, -17, 15, 2, 361, 5, 28] => [39, 20, -378, 7, 2, 3.32948887119979e-44, 9, 308]
นี่เป็นรหัสสำหรับนักกอล์ฟที่มีรหัสสั้นที่สุด (เป็นไบต์)!