บางครั้งเมื่อฉันเบื่อจริง ๆ ฉันชอบที่จะหาผลรวมของจำนวนเต็มจำนวนเต็มที่ไม่เป็นลบ ฉันจะหาผลรวมของความยาวอาร์เรย์ที่เป็นพลังของสองเท่านั้น น่าเสียดายที่ฉันมักจะทำผิดพลาด โชคดีที่ฉันติดตามงานของฉันเมื่อฉันไปตามวิธีต่อไปนี้:
ฉันเพิ่มคู่ของตัวเลขที่อยู่ติดกันจนกว่าจะเหลือเพียงอันเดียว ตัวอย่างเช่น:
6 + 18 + 9 + 6 + 6 + 3 + 8 + 10
= 24 + 15 + 9 + 18
= 39 + 27
= 66
คุณมีหน้าที่ตรวจสอบว่าฉันทำผิดพลาดที่ไหนสักแห่งหรือไม่ คุณสามารถรับอินพุตที่ส่งผ่านไปยังฟังก์ชันของคุณหรืออ่านจากมาตรฐานในเอาต์พุตสามารถพิมพ์หรือส่งคืนได้
อินพุต: อาร์เรย์ / รายการ / ฯลฯ ของจำนวนเต็มที่ไม่เป็นลบและอาจมีความยาวของอาร์เรย์นั้นด้วยหากภาษาของคุณต้องการ อาร์เรย์นั้นจะเป็นตัวเลขทั้งหมดที่อ่านจากซ้ายไปขวาจากบนลงล่าง ตัวอย่างเช่นอาร์เรย์ด้านบนจะกลายเป็น:
[[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]]
หรือ
[6, 18, 9, 6, 6, 3, 8, 10, 24, 15, 9, 18, 39, 27, 66]
ถ้าคุณต้องการ
เอาต์พุต: บูลีนเดี่ยวที่แสดงว่าเกิดข้อผิดพลาดหรือไม่ บูลีนสามารถแสดงโดยใช้การแมปใด ๆโดยมีเงื่อนไขว่าอินพุตทั้งหมดที่มีข้อผิดพลาดส่งคืน / พิมพ์ผลลัพธ์เหมือนกันและอินพุตทั้งหมดที่ไม่มีข้อผิดพลาดส่งคืน / พิมพ์ผลลัพธ์เหมือนกัน สิ่งนี้ควรดำเนินการโดยไม่บอก แต่เอาต์พุตทั้งสองนั้นไม่สามารถเหมือนกันได้
ตัวอย่างของการสรุปที่ถูกต้อง:
6
5+6
=11
3 + 2 + 4 + 5
= 5 + 9
= 14
[0, 1, 2, 3, 1, 5, 6]
[[1, 2, 4, 8], [3, 12], [15]]
ตัวอย่างบางส่วนของการสรุปที่ไม่ถูกต้อง:
5+4
=8
4 + 4 + 4 + 4
= 9 + 7
= 16
[[1, 2, 3, 4], [7, 3], [10]]
[3, 4, 5, 6, 7, 8, 9]
โปรดทราบว่าฉันสามารถทำผิดพลาดและยังได้รับคำตอบที่ถูกต้อง หากฉันทำผิดพลาดมันจะไม่ส่งผลให้มีจำนวนพิเศษหรือจำนวนที่ขาดหายไปในอาร์เรย์สุดท้ายเพียง แต่เป็นจำนวนที่ไม่ถูกต้อง
ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม คำตอบที่สั้นที่สุดในแต่ละภาษาเป็นผู้ชนะ คำตอบที่เก่ากว่าจะชนะในกรณีที่เสมอกัน ฉันยังคงมีสิทธิ์ตัดสินใจว่า "ภาษาเดียวกัน" คืออะไร แต่ฉันจะบอกล่วงหน้าว่าไม่สามารถรับจุดได้ทั้งใน Python 2 และ Python 3
[0,1,2,3,1,5,6]
ไม่ถูกต้องเนื่องจาก "อินพุต: อาร์เรย์ / รายการ / ฯลฯ ของจำนวนเต็มบวก"