เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้อาร์เรย์ของจำนวนเต็มที่ไม่เป็นลบเป็นอินพุตและเอาต์พุตชุดของเวกเตอร์ / อาร์เรย์ที่มีองค์ประกอบของอาร์เรย์อินพุตตามลำดับให้แยกเพื่อให้เวกเตอร์แต่ละอันรวมกันเป็น 15 ถ้าผลรวมของแรก อิลิเมนต์ N จะไม่ "โดน 15" ดังนั้นจำนวนที่ผ่าน 15 ต้องถูกตัดออกและส่วนที่เหลือจะเป็นองค์ประกอบแรกของเวกเตอร์ถัดไป สิ่งนี้จะดำเนินต่อไปจนกว่าจะถึงจุดสิ้นสุดของอาร์เรย์อินพุต หากผลรวมของเวกเตอร์สุดท้ายนั้นน้อยกว่า 15 จะต้องเพิ่มจำนวนท้ายเพื่อให้ผลรวมเพิ่มขึ้น
ฉันคิดว่ากฎนั้นเข้าใจง่ายกว่าโดยดูจากตัวอย่าง:
Input: 3 7 5 10
Output:
3 7 5 <- Sum is 15
10 5 <- 5 is added to make the sum 15
Input: 2 4 5 9 2 3 5 0 2 4 5 0 3
Output:
2 4 5 4 <- Sum 15. 9 is split in two.
5 2 3 5 <- The first 5 is the remainder of 9
0 2 4 5 0 3 1 <- The last number is added to make the sum 15
Input: 1 1 1
Output:
1 1 1 12 <- The number 12 is added to make the sum 15
Input: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Output:
1 2 3 4 5
6 7 2 <- 2 is the first part of 8
6 9 <- 6 is the remainder of 8
10 5 <- 5 is first part of 11
6 9 <- 6 is remainder of 11. 9 is first part of 12
3 12 <- 3 is remainder of 12. 12 is first part of 13
1 14 <- 1 is remainder of 13. 14 is 14
15
15 <- 15 is first part of 16
1 14 <- 1 is remainder of 16. 14 is first part of 17
3 12 <- 3 is remainder of 17. 12 is added to make the sum 15
Input: 20 20
Output:
15
5 10 <- 5 is remainder from the first 20
10 5 <- 10 is remainder from second 20. 5 is added to make the sum = 15.
ทั้งอินพุตและรูปแบบเอาต์พุตเป็นทางเลือก สิ่งที่ดีที่สุดในภาษาของคุณ
รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
ลีดเดอร์บอร์ด
สแต็คส่วนย่อยที่ด้านล่างของโพสต์นี้สร้างแคตตาล็อกจากคำตอบ a) เป็นรายการคำตอบสั้นที่สุดต่อภาษาและ b) เป็นลีดเดอร์บอร์ดโดยรวม
เพื่อให้แน่ใจว่าคำตอบของคุณปรากฏขึ้นโปรดเริ่มคำตอบด้วยหัวข้อโดยใช้เทมเพลต Markdown ต่อไปนี้:
## Language Name, N bytes
ที่N
มีขนาดของส่งของคุณ หากคุณปรับปรุงคะแนนของคุณคุณสามารถเก็บคะแนนเก่าไว้ในพาดหัวโดยการตีพวกเขาผ่าน ตัวอย่างเช่น
## Ruby, <s>104</s> <s>101</s> 96 bytes
หากคุณต้องการรวมหลายตัวเลขไว้ในส่วนหัวของคุณ (เช่นเนื่องจากคะแนนของคุณคือผลรวมของไฟล์สองไฟล์หรือคุณต้องการแสดงรายการบทลงโทษการตั้งค่าสถานะของล่ามแยกต่างหาก) ตรวจสอบให้แน่ใจว่าคะแนนจริงเป็นตัวเลขสุดท้ายในส่วนหัว:
## Perl, 43 + 2 (-p flag) = 45 bytes
คุณสามารถทำให้ชื่อภาษาเป็นลิงค์ซึ่งจะปรากฏในตัวอย่างข้อมูล:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
Input: 100 Output: 15; 15; 15; 15; 15; 15; 10 5
[[3, 7, 5], [10, 5]]
จะเป็นผลลัพธ์ที่ถูกต้องสำหรับกรณีทดสอบครั้งแรก?