ให้เครดิตกับ Geobits ใน TNB สำหรับแนวคิดนี้
โพสต์โดยไม่ได้รายละเอียดที่เพียงพอเมื่อเร็ว ๆ นี้ posited เกมที่น่าสนใจ:
เด็ก 2 คนนั่งอยู่หน้าลูกอม ขนมแต่ละชิ้นมีหมายเลข 1 ถึงx
ด้วยx
จำนวนขนมทั้งหมด แต่ละหมายเลขมีการเกิดขึ้น 1 รายการ
เป้าหมายของเกมคือให้เด็ก ๆ กินขนมและเพิ่มคุณค่าของขนมที่พวกเขากินเพื่อให้ได้คะแนนสุดท้ายโดยมีคะแนนชนะสูงกว่า
อย่างไรก็ตามโพสต์ดั้งเดิมพลาดข้อมูลสำคัญเช่นวิธีเลือกขนมดังนั้นเด็ก ๆ ในเรื่องของเราจึงตัดสินใจว่าเด็กโตจะไปก่อนและสามารถกินลูกกวาดได้ถึงครึ่งอย่างไรก็ตามเมื่อเขาประกาศจบเทิร์นของเขา เขาเปลี่ยนใจไม่ได้
เด็กคนหนึ่งในเกมนี้ไม่ชอบขนมดังนั้นเขาจึงอยากกินให้น้อยที่สุดเท่าที่จะเป็นไปได้และเขาเคยดูพ่อของเขาเขียนโค้ดบางครั้งและเขาสามารถใช้ทักษะที่ได้รับจากการทำขนมเท่าไหร่ เขาต้องการที่จะกินเพื่อให้แน่ใจว่าชัยชนะในขณะที่ยังคงกินน้อยที่สุด
ความท้าทาย
เมื่อกำหนดจำนวนขนมx
ทั้งหมดโปรแกรมหรือฟังก์ชั่นของคุณควรให้ปริมาณขนมที่น้อยที่สุดที่เขาต้องกินเพื่อให้ได้ชัยชนะn
แม้ว่าฝ่ายตรงข้ามจะกินขนมที่เหลือทั้งหมด
ตัวเลขที่ใหญ่กว่าย่อมสร้างตัวเลขที่มากขึ้นดังนั้นไม่ว่าคุณจะให้เขาจำนวนเท่าใดเขาก็จะกิน n
ตัวเลขที่ใหญ่ที่สุด
กฎระเบียบ
x
จะเป็นจำนวนเต็มบวกเสมอในช่วง0 < x! <= l
ที่l
ขีด จำกัด สูงสุดของความสามารถในการจัดการหมายเลขภาษาของคุณ- รับประกันได้ว่าเด็กจะกิน
n
ตัวเลขที่ใหญ่ที่สุดเสมอเช่นx = 5
และn = 2
เขาจะกิน4
และ5
กรณีทดสอบ
x = 1
n = 1
(1 > 0)
x = 2
n = 1
(2 > 1)
x = 4
n = 2
(3 * 4 == 12 > 1 * 2 == 2)
x = 5
n = 2
(4 * 5 == 20 > 1 * 2 * 3 == 6)
x = 100
n = 42
(product([59..100]) > product([1..58]))
x = 500
n = 220
(product([281..500]) > product([1..280]))
เกณฑ์การให้คะแนน
น่าเสียดายที่ผู้เข้าแข่งขันที่กล้าหาญของเราไม่มีอะไรจะเขียนโค้ดด้วยดังนั้นเขาจึงต้องจัดเรียงขนมเป็นตัวอักษรของรหัสดังนั้นรหัสของคุณจะต้องมีขนาดเล็กที่สุดเท่าที่จะเป็นไปได้
x = 0
จัดการด้วยเช่นกัน0! = 1
ใช่ไหม ( x
ควรระบุว่าเป็นจำนวนเต็มบวกด้วยหรือไม่)