Francuzi zapisują liczby w szczególny sposób.
- 1-16 są „normalne”
- 17–19 zostały przeliterowane 10 + 7. 10 + 8, 10 + 9 .
- 20-69 są „normalne” (OK, OK! Nie bardzo, ale są w tym wyzwaniu)
- 70-79 to 60 + 10, 60 + 11 ... 60 + 10 + 7, 60 + 10 + 8, 60 + 10 + 9 .
- 80-99 to 4 * 20, 4 * 20 + 1, 4 * 20 + 2 ... 4 * 20 + 16, 4 * 20 + 10 + 7, 4 * 20 + 10 + 8, 4 * 20 + 10 + 9
Wyzwanie:
Weź dodatnią liczbę całkowitą z zakresu [1100] i wyślij ją „po francusku”. Musisz wyprowadzić go dokładnie tak, jak pokazano poniżej, z, *
i +
tak nie 97
jest 4*20+10+7
, [4 20 10 7]
lub coś innego.
Przypadki testowe:
1 - 1
.. - ..
16 - 16
17 - 10+7
18 - 10+8
19 - 10+9
20 - 20
21 - 21
.. - ..
69 - 69
70 - 60+10
71 - 60+11
72 - 60+12
77 - 60+10+7
78 - 60+10+8
79 - 60+10+9
80 - 4*20
81 - 4*20+1
82 - 4*20+2
.. - ..
90 - 4*20+10
91 - 4*20+11
96 - 4*20+16
97 - 4*20+10+7
98 - 4*20+10+8
99 - 4*20+10+9
100 - 100
code-golf
number
kolmogorov-complexity
Stewie Griffin
źródło
źródło
16
do10+7
góry. (W języku angielskim dzieje się to między12
i10+3
, z nieco bardziej morfologicznym przebraniem.) Zawsze byłem trochę przejęty faktem, że różne języki dokonują tego przejścia w różnej liczbie.22
gdy jest „dix-huit”10+8
?Odpowiedzi:
Excel,
153149 bajtówJestem pewien, że może być lepiej, starałem się znaleźć skuteczny sposób rozliczenia # 80.
edycja: Skonsolidowano przypadki „normalne”, aby zaoszczędzić 4 bajty. # 80 wciąż jest do bani.
Nie mogę znaleźć konkretnej odpowiedzi tutaj, nie jestem pewien zasad kodowania golfa TBH. Czy mogę używać wielu komórek w programie Excel i dodawać liczbę bajtów dla każdej z nich?
to znaczy. Do wprowadzenia w komórce A1
A2: 11 bajtów
A3 (wynik): 125 bajtów
W sumie 136?
źródło
IF(A1=80,,IF(MOD(A1,20)>16,"+10+"&MOD(A1,20)-10,"+"&MOD(A1,20)))
naIFS(A1=80,,MOD(A1,20)>16,"+10+"&MOD(A1,20)-10,1,"+"&MOD(A1,20))
)
koniec, czy możesz zrobić to samo w programie Excel? Możesz więc zapisać 5 bajtów (tak naprawdę są znaki UCS2, więc jeśli powiesz bajt == oktet, musisz policzyć go podwójnie). I musisz zmienić,
w;
Siatkówka ,
5248 bajtów4 bajty zapisane dzięki Neilowi
Wypróbuj online! lub sprawdź wszystkie dane wejściowe (dostarczone przez Neila)
Wyjaśnienie
Najpierw zajmujemy się tłumaczeniem 70, 80 i 90. W tych pierwszych 3 etapach 7 na początku z kolejną postacią po niej zastępowaną
60+1
. Podobnie,9
zastępuje się81
, i8
przez4*20+1
. Zastąpienie9
zasadniczo zmienia go na „osiemdziesiąt dziesięć” i tak, że8
jest on następnie obsługiwany przez następną zamianę, co oszczędza bajty przy4*20+1
dwukrotnym zapisywaniu .Obsługuje to przypadki
17
,18
oraz19
poprzez zastąpienie1
w każdym z10+
.Wreszcie, nigdy nie powinno być
+0
na końcu, więc usuń go, jeśli jest.źródło
7-9
, ale nie sądzę, że potrzebujesz takiego spojrzenia: Wypróbuj online!$1
jest tak samo długie?=
.Python 2 , 98 bajtów
Wypróbuj online!
źródło
JavaScript (ES6),
7371 bajtówWersja premiowa, która drukuje liczby tak, jak są pisane dla dodatkowych 2 bajtów:
źródło
23
, na przykład, powinien generować23
, a nie20+3
.(m=n%20)
m
dostaje resetu aby0
wf(n-n%20)
rozmowy. (To zmienna globalna)n<70|n>99
nan%100<70
. Czy mógłbyś również dodać kompilator testowy?R, 110 bajtów
źródło
(i-r)/10
zamiastfloor(i/10)
. Ii>15
powinno byći>16
.PHP, 99 bajtów (Chcę być szczęśliwy)
prosty port JS firmy ETHproductions , 4- bajkowy golf . Drukuje liczby zgodnie z prośbą PO.
awaria
Chcę mieć właściwą wersję,
11498 bajtównowe podejście zainspirowane produkcjami ETH , drukuje liczby tak, jak są one zapisane.
spróbuj online .
awaria
źródło
Python 2,
130108 bajtów22 bajty zapisane dzięki @mathjunkie
Wypróbuj online!
źródło
f=
ponieważ użyłeś go w lambda.Partia,
220217 bajtówPobiera dane wejściowe na STDIN. Generowanie i usuwanie wiodących
+
zapisuje 1 bajt na specjalnej obudowie 80. Edycja: Zapisano 3 bajty dzięki @ ConorO'Brien.źródło
@echo off
i poprzedzając wszystkie instrukcje z wyjątkiem instrukcji pętli hte za pomocą@
Galaretka , 55 bajtów
Wypróbuj online! lub zobacz zestaw testowy
Bez wątpienia istnieje krótsza droga!
W jaki sposób?
źródło
Pyth,
6156 bajtówPrzetestuj online!
Dzięki Leaky Nun za ulepszenie o 5 bajtów!
Wyjaśnienie:
źródło
*-Q100>Q69
→}/QTr6T
@]b}17 19
→}b}17 19
+"10+"eb
→j\+,Teb
Python3, 127 bajtów
Każdy element tablicy zawiera swoją reprezentację:
Kod tak naprawdę nie tworzy funkcji, tylko tablicę - nie wiem, czy jest to dozwolone. W przeciwnym razie musiałbym zrobić te 139 bajtów, dodając
f=[...].__getitem__
.źródło
f=
, ponieważ funkcje bez nazw (tj. Wyrażenia, które oceniają przesłaną funkcję) są w porządku, chyba że nazwa jest potrzebna do czegoś takiego jak rekurencja.Java 7,
9796109 bajtów+13 bajtów w przypadku naprawiania błędów
80
.. :(Wyjaśnienie:
Kod testowy:
Wypróbuj tutaj.
źródło