งานของคุณคือการเขียนโปรแกรมที่อินพุต n ให้เอาท์พุตนิพจน์ที่น้อยที่สุดของแต่ละหมายเลข 1 ถึง n ตามลำดับ โปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ
การแสดงออกที่น้อยที่สุดจะรวม 1 กับการบวกและการคูณเพื่อให้ได้ผลลัพธ์ตามจำนวนที่กำหนดโดยใช้น้อยที่สุดเท่าที่จะเป็นไปได้ ตัวอย่างเช่น23
แสดง23=((1+1+1)(1+1)+1)(1+1+1)+1+1
ด้วยสิบเอ็ดซึ่งน้อยที่สุด
ที่ต้องการ:
- โปรแกรมจะต้องใช้เป็นอินพุตจำนวนธรรมชาติบวก
- ผลลัพธ์จะต้องอยู่ในรูปแบบนี้:
20 = ((1+1+1)(1+1+1)+1)(1+1)
8 = ((1+1)(1+1))(1+1)
การส่งออกของคุณอาจมีวงเล็บไม่จำเป็นเช่น- สัญลักษณ์การคูณ
*
เป็นตัวเลือก - ช่องว่างเป็นตัวเลือก
- คุณไม่ได้มีการส่งออกทั้งหมดของสมการที่เป็นไปได้สำหรับค่าที่กำหนด: ตัวอย่างเช่นคุณสามารถเลือกที่จะส่งออกหรือ
4=1+1+1+1
4=(1+1)(1+1)
คุณไม่ต้องออกทั้งคู่ - โปรแกรมที่สั้นที่สุด (เป็นไบต์) ในแต่ละภาษาชนะ
1 = 1 2 = 1 + 1 3 = 1 + 1 + 1 4 = 1 + 1 + 1 + 1 = 1 5 + 1 + 1 + 1 + 1 = 6 (1 + 1 + 1) (1 + 1) = 7 (1 + 1 + 1) (1 + 1) 1 = 8 (1 + 1 + 1 + 1) (1 + 1) = 9 (1 + 1 + 1) (1 + 1 + 1) = 10 (1 + 1 + 1) (1 + 1 + 1) 1 = 11 (1 + 1 + 1) (1 + 1 + 1) + 1 + 1 12 = (1 + 1 + 1) (1 + 1) (1 + 1) = 13 (1 + 1 + 1) (1 + 1) (1 + 1) 1 = 14 ((1 + 1 + 1) (1 + 1) 1) (1 + 1) = 15 (1 + 1 + 1 + 1 + 1) (1 + 1 + 1) = 16 (1 + 1 + 1 + 1) (1 + 1) (1 + 1) = 17 (1 + 1 + 1 + 1) (1 + 1) (1 + 1) 1 = 18 (1 + 1 + 1) (1 + 1 + 1) (1 + 1) = 19 (1 + 1 + 1) (1 + 1 + 1) (1 + 1) 1 = 20 ((1 + 1 + 1) (1 + 1 + 1) 1) (1 + 1)
ต่อไปนี้เป็นกรณีทดสอบเพิ่มเติม: (จำไว้ว่าอนุญาตให้ใช้นิพจน์อื่นที่มีจำนวน 1 เท่ากันได้)
157=((1+1+1)(1+1)(1+1)+1)(1+1+1)(1+1)(1+1)+1
444=((1+1+1)(1+1+1)(1+1)(1+1)+1)(1+1+1)(1+1)(1+1)
1223=((1+1+1)(1+1+1)(1+1+1)(1+1+1)(1+1+1)+1)(1+1+1+1+1)+1+1+1
15535=((((1+1+1)(1+1+1)(1+1+1)(1+1+1)+1)((1+1+1)(1+1)+1)+1)(1+1+1)+1)(1+1+1)(1+1+1)+1
45197=((((1+1+1)(1+1)(1+1)(1+1)+1)(1+1+1+1+1)(1+1)+1)(1+1+1)(1+1)(1+1)+1)(1+1+1+1+1)(1+1+1)+1+1
โชคดี! - เต่า🐢
n=20
) และ 2) คุณพูดตอนแรกว่าความซับซ้อนของจำนวนเต็มซึ่งแตกต่างจากสมการจะต้องเป็นผลลัพธ์ แต่คุณไม่ได้รวมไว้ใน ตัวอย่างใด ๆ ยกเว้นตัวอย่างแรก