ท้าทาย
ความท้าทายคือการเขียนโค้ดที่ใช้จำนวนเต็มบวก 'n' เป็นอินพุตและแสดงวิธีที่เป็นไปได้ทั้งหมดที่สามารถเขียนตัวเลขตั้งแต่ 1 - n โดยมีเครื่องหมายบวกหรือลบระหว่างเช่นผลรวมของพวกเขาคือ เท่ากับศูนย์ โปรดจำไว้ว่าคุณสามารถใช้การเพิ่มหรือการลบได้เท่านั้น
ตัวอย่างเช่นถ้าอินพุตเป็น 3 ดังนั้นมี 2 วิธีในการสร้างผลรวม 0:
1+2-3=0
-1-2+3=0
โปรดทราบว่าตัวเลขอยู่ในลำดับเริ่มต้นจาก 1 จนถึง n (ซึ่งคือ 3 ในกรณีนี้) เนื่องจากเห็นได้จากตัวอย่างเครื่องหมายของตัวเลขตัวแรกอาจเป็นลบได้ดังนั้นควรระมัดระวัง
ตอนนี้ 3 เรียบง่ายมาก ให้เราเขียนรายการทุกวิธีเมื่อพิจารณาหมายเลข 7
1+2-3+4-5-6+7=0
1+2-3-4+5+6-7=0
1-2+3+4-5+6-7=0
1-2-3-4-5+6+7=0
-1+2+3+4+5-6-7=0
-1+2-3-4+5-6+7=0
-1-2+3+4-5-6+7=0
-1-2+3-4+5+6-7=0
ดังนั้นที่นี่เรามีวิธีที่เป็นไปได้ทั้งหมด 8 วิธี
อินพุตและเอาต์พุต
ตามที่ระบุไว้ก่อนการป้อนข้อมูลจะเป็นจำนวนเต็มบวก ผลลัพธ์ของคุณควรมีวิธีที่เป็นไปได้ทั้งหมดที่ตัวเลขให้ผลรวมเป็นศูนย์ ในกรณีที่ไม่มีวิธีที่เป็นไปได้ที่จะทำเช่นเดียวกันคุณสามารถส่งออกอะไรก็ได้คุณต้องการ
นอกจากนี้คุณสามารถพิมพ์การส่งออกในรูปแบบใด ๆ ที่คุณชอบ แต่ควรเข้าใจได้ได้ ตัวอย่างเช่นคุณอาจพิมพ์ตามตัวอย่างด้านบน หรือคุณอาจพิมพ์สัญลักษณ์ของตัวเลขตามลำดับ มิฉะนั้นคุณสามารถพิมพ์ '0 และ' ตามลำดับโดยที่ '0' จะแสดงเครื่องหมายลบและ '1' จะแสดงเครื่องหมายบวก (หรือกลับกัน)
ตัวอย่างเช่นคุณสามารถแสดง 1 + 2-3 = 0 โดยใช้:
1+2-3=0
1+2-3
[1,2,-3]
++-
110
001
อย่างไรก็ตามฉันขอแนะนำให้ใช้รูปแบบสามอย่างแรกเพื่อความเรียบง่าย คุณสามารถสมมติว่าอินพุตทั้งหมดนั้นถูกต้อง
ตัวอย่าง
7 ->
1+2-3+4-5-6+7=0
1+2-3-4+5+6-7=0
1-2+3+4-5+6-7=0
1-2-3-4-5+6+7=0
-1+2+3+4+5-6-7=0
-1+2-3-4+5-6+7=0
-1-2+3+4-5-6+7=0
-1-2+3-4+5+6-7=0
4 ->
1-2-3+4=0
-1+2+3-4=0
2 -> -
8 ->
1+2+3+4-5-6-7+8=0
1+2+3-4+5-6+7-8=0
1+2-3+4+5+6-7-8=0
1+2-3-4-5-6+7+8=0
1-2+3-4-5+6-7+8=0
1-2-3+4+5-6-7+8=0
1-2-3+4-5+6+7-8=0
-1+2+3-4+5-6-7+8=0
-1+2+3-4-5+6+7-8=0
-1+2-3+4+5-6+7-8=0
-1-2+3+4+5+6-7-8=0
-1-2+3-4-5-6+7+8=0
-1-2-3+4-5+6-7+8=0
-1-2-3-4+5+6+7-8=0
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ!
+
เป็นN
และ-
เป็น-N
หรือว่าจะใช้มันมากเกินไป? (เช่น3
-> [[-3,-3,3], [3,3,-3]]
)
0
และ1
ตัวเลือก แต่ใช้N
และ-N
(ดูการแก้ไขของฉันด้านบน)