คำอธิบาย:
ปีที่แล้วในชั้นเรียนคณิตศาสตร์ในการบ้านเราบางครั้งเราจะได้ง่าย ๆ เหล่านี้แม้ว่าจะมีคำถามที่น่ารำคาญพอ ๆ กันที่เรียกว่าปริศนาเพชร เหล่านี้เป็นคำถามพื้นฐานที่เราจะได้รับผลรวมจากนั้นผลิตภัณฑ์จะถูกขอให้ค้นหาตัวเลขสองตัวซึ่งเมื่อคูณให้ผลิตภัณฑ์และเมื่อบวกจะให้ผลรวม สิ่งเหล่านี้ทำให้ฉันเป็นบ้าเพราะวิธีเดียวที่ฉันรู้วิธีแก้ปัญหาพวกเขา (ในพีชคณิตฉัน) คือการแสดงรายการปัจจัยของผลิตภัณฑ์จากนั้นดูว่าอันไหนที่เพิ่มเข้ามาเพื่อสร้างผลรวม (เนื่องจากฉันไม่รู้วิธีใช้ Quadratics ในเวลานั้น) ไม่ต้องพูดถึงพวกเขาไม่ได้คณิตศาสตร์ที่ท้าทายอย่างแน่นอน อย่างไรก็ตามมันเพิ่งเกิดขึ้นกับฉันว่าฉันควรจะเขียนโปรแกรม นั่นคือความท้าทายของคุณวันนี้! เขียนโปรแกรมที่สามารถแก้ปริศนาเพชรได้
ตัวอย่าง ขอโทษสำหรับภาพที่พร่ามัวมันเป็นสิ่งที่ดีที่สุดที่ฉันหาได้ ยังไม่สนใจตัวเลขในฟองอากาศด้านบนของเพชรคือผลิตภัณฑ์ด้านล่างคือผลรวมด้านขวาและซ้ายเป็นตัวเลขสองตัว คำตอบมีดังนี้: (นี่เป็นกรณีทดสอบของคุณด้วย)
- 9, -7
- -2, -1
- 5, 8
- -9, -9
กฎ:
- คุณไม่สามารถใช้ฟังก์ชั่นหรือคลาสที่กำหนดไว้ล่วงหน้าซึ่งจะทำให้สิ่งนี้สำเร็จสำหรับคุณ
- รหัสของคุณจะต้องเป็นโปรแกรมที่สมบูรณ์หรือฟังก์ชั่นที่ส่งคืนหรือพิมพ์คำตอบเมื่อพบพวกเขา
- อินพุตคือผลรวมและผลิตภัณฑ์ซึ่งถูกป้อนเข้าเป็นพารามิเตอร์ฟังก์ชันหรืออินพุตของผู้ใช้
ข้อมูลจำเพาะ:
- สมมติว่าตัวเลขสองตัวคือผลรวมและผลิตภัณฑ์จะเป็นจำนวนเต็มเสมอ
- คำตอบทั้งสองจะอยู่ระหว่าง -127 ถึง 127
- ข้อมูลที่คุณป้อนจะเป็นจำนวนเต็มสองจำนวน (รวมกับผลิตภัณฑ์)
โปรดจำไว้ว่านี่คือรหัสกอล์ฟดังนั้นจำนวนไบต์ที่สั้นที่สุดจึงชนะ โปรดตั้งชื่อคำตอบของคุณด้วยชื่อภาษามาตรฐาน ## จำนวนไบต์
แก้ไข: นอกจากนี้ Doorknob ยังชี้ให้เห็นว่านี่เป็น "ปัจจัยที่เป็นกำลังสองของรูปแบบ x ^ 2 + bx + c," นั่นเป็นอีกวิธีหนึ่งในการคิดและจัดการกับความท้าทายนี้ : D
(x + n)(x + m)
ให้คุณx^2 + (n+m)x + (n*m)
ดังนั้นแฟคตอริ่งบอกว่าสมการกำลังสองนั้นโดยทั่วไปเทียบเท่ากับคำถามนี้ (ถ้าฉันเข้าใจอย่างถูกต้อง)
x^2 + bx + c
" ถูกต้องใช่ไหม