あなたの仕事は、入力nで、1からnまでの各数値の最小式を順番に出力するプログラムを書くことです。バイト単位の最短プログラムが優先されます。
最小の式は、1を加算および乗算と組み合わせて、可能な限り少ない1を使用して、指定された数になります。たとえば、23
は23=((1+1+1)(1+1)+1)(1+1+1)+1+1
11のように表現されますが、これは最小限です。
要件:
- プログラムは、入力として正の自然数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)最初に、方程式とは異なる整数の複雑さを出力する必要があると言いますが、最初の例を除くすべての例。