จำนวนพาร์ติชันของจำนวนเต็มคือจำนวนวิธีที่สามารถแสดงจำนวนเต็มเป็นผลรวมของจำนวนเต็มบวก
ตัวอย่างเช่น:
5
4 + 1
3 + 2
3 + 1 + 1
2 + 2 + 1
2 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1
มี 7 วิธีในการแทนค่าหมายเลข 5 ดังนั้น 7 คือหมายเลขพาร์ติชันที่สอดคล้องกับหมายเลข 5
หมายเลขพาร์ติชัน: OEIS: # A000041
คำสั่ง
เขียนโปรแกรมที่ใช้จำนวนเต็มบวกเป็นอินพุตและเอาต์พุตตัวเลขสองตัวที่สร้างหมายเลขพาร์ติชันที่ใกล้เคียงที่สุดสองตัวไปยังหมายเลขอินพุต
- ข้อมูลที่ป้อนต้องเป็นจำนวนเต็มบวก 1 ตัว
- หากอินพุตไม่ใช่หมายเลขพาร์ติชันเอาต์พุตจะต้องเป็นจำนวนเต็มบวกที่แตกต่างกัน 2 ตัวที่สร้างหมายเลขพาร์ติชันที่ใกล้เคียงที่สุดสองหมายเลขไปยังหมายเลขอินพุต (หากสองหมายเลขพาร์ติชันเป็นตัวเลือกที่เท่ากันสำหรับหนึ่งในหมายเลขผลลัพธ์มันไม่สำคัญว่าคุณจะเลือกหมายเลขใด)
- หากอินพุตเป็นหมายเลขพาร์ติชันเอาต์พุตต้องเป็นจำนวนเต็มบวก 1 ตัวที่สร้างหมายเลขอินพุต
- อินพุตและเอาต์พุตอาจอยู่ในรูปแบบที่สมเหตุสมผล
- คุณอาจคิดว่าอินพุตจะไม่มากกว่า 100 ล้าน (เช่นเอาต์พุตจะไม่มากกว่า 95)
- Built-in ฟังก์ชั่นไปยังหมายเลขพาร์ทิชันคำนวณจะไม่ได้รับอนุญาตพร้อมกับคนอื่น ๆช่องโหว่มาตรฐาน
- นี่คือโค้ดกอล์ฟดังนั้นจำนวนไบต์ที่น้อยที่สุดจึงจะชนะ
หมายเลขพาร์ติชัน: OEIS: # A000041
ตัวอย่าง
Input: 66
Output: 11, 12
(หมายเลขพาร์ติชันที่สอดคล้องกับหมายเลข 11 และ 12 คือ 56 และ 77 ซึ่งเป็นหมายเลขพาร์ติชันที่ใกล้เคียงที่สุดถึง 66)
Input: 42
Output: 10
(หมายเลข 42 เป็นหมายเลขพาร์ติชั่นอยู่แล้วดังนั้นเพียงแค่ส่งออกหมายเลขที่สอดคล้องกับหมายเลขพาร์ติชัน)
Input: 136
Output: 13, 14
(สองหมายเลขพาร์ติชันที่ใกล้เคียงกับ 136 เป็นจริงทั้งน้อยกว่า 136 (เช่น 101 และ 135) ดังนั้นผลลัพธ์คือ 13 และ 14 ซึ่งตรงข้ามกับ 14 และ 15)
Input: 1
Output: 0 or 1
(ทั้ง 0 และ 1 เป็นเอาต์พุตที่ถูกต้องในกรณีพิเศษนี้)
Input: 2484
Output: 26, 25 or 26, 27
(ทั้งของผลเหล่านี้จะถูกต้องเพราะ 2484 เป็น d เท่ากับฉันท่าทาง 1958 และ 3010)
Input: 4
Output: 3, 4
(ได้)
5
ที่อยู่ด้านบนสุด (ฉันจะเพิ่มความกระจ่างถ้าคุณคิดว่ามันไม่ชัดเจนพอ)