您的任务是编写一个程序,在输入n上按顺序输出从1到n的每个数字的最小表达式。以字节为单位的最短程序获胜。
最小表达式将1与加和乘相结合以得到给定的数字,并使用尽可能少的1。例如,用11个23
表示23=((1+1+1)(1+1)+1)(1+1+1)+1+1
,这是最小的。
要求:
- 程序必须将正自然数n作为输入。
- 输出必须采用以下格式:
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 5 = 1 + 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)您在开始时说必须输出与方程式不同的整数复杂度,但不要在其中包括除第一个示例外的任何示例。