Twoim zadaniem jest napisanie programu, który na wejściu n wypisze w kolejności minimalne wyrażenie każdej liczby od 1 do n. Najkrótszy program w bajtach wygrywa.
Minimalne wyrażenie łączy jedynki z dodawaniem i mnożeniem w celu uzyskania podanej liczby, używając jak najmniejszej liczby jedynek. Na przykład 23
wyraża się tak, jak 23=((1+1+1)(1+1)+1)(1+1+1)+1+1
jedenaście, co jest minimalne.
Wymagania:
- Program musi przyjąć jako dane wejściowe dodatnią liczbę naturalną n.
- Dane wyjściowe muszą być w tym formacie:
20 = ((1+1+1)(1+1+1)+1)(1+1)
- Twój wynik może nie zawierać niepotrzebnych nawiasów, takich jak
8 = ((1+1)(1+1))(1+1)
. - Znak mnożenia
*
jest opcjonalny. - Miejsca są opcjonalne.
- Nie musisz wyprowadzać wszystkich możliwych równań dla danej wartości: Na przykład masz wybór, aby wyprowadzić
4=1+1+1+1
lub4=(1+1)(1+1)
. Nie musisz generować obu. - Wygrywa najkrótszy program (w bajtach) w każdym języku.
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)
Oto kilka przypadków testowych: (pamiętaj, że dozwolone są również inne wyrażenia o tej samej liczbie 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
Powodzenia! - Żółw 🐢
n=20
) i 2) mówisz na początku, że złożoność liczb całkowitych, która jest różna od równania, musi być wyprowadzona, ale nie włączasz tego w dowolny z przykładów oprócz pierwszego.