Jestem głodny. Zróbmy coś mikrofalowego. Biorąc pod uwagę numeryczną liczbę od 1 do 4 cyfr, podaj liczbę sekund, które powinna uruchomić kuchenka mikrofalowa.
Detale
Sztuką jest ustalenie, czy użytkownik wprowadza sekundy, czy kombinację sekund i minut. Te i dziesiątki miejsc należy interpretować jako sekundy, a setki i tysiące miejsc powinny być minutami. Na przykład wartość 1234
należy interpretować jako 12 minut, 34 sekund i 9876
powinna wynosić 98 minut, 76 sekund. Pisanie na klawiaturze 130
i 90
powinno skutkować czasem gotowania 90 sekund.
Oto kilka innych danych wejściowych i wyjściowych:
- 1 = 1
- 11 = 11
- 111 = 71
- 1111 = 671
- 9 = 9
- 99 = 99
- 999 = 639
- 9999 = 6039
Zasady
To jest golf golfowy , więc wygrywa najkrótszy program w bajtach. Standardowe luki są niedozwolone. Zwycięski wpis musi zwrócić poprawną odpowiedź, jeśli otrzyma dowolną liczbę całkowitą od 1 do 9999.
9876
?190
?Odpowiedzi:
Python 2 , 19 bajtów
Wypróbuj online!
źródło
Japt , 6 bajtów
Przetestuj online!
ìL
konwertuje na base-100 iì60
konwertuje z powrotem na base 60, w wyniku czegofloor(n/100)*60 + n%100
. Działa również z godzinami (10000 -> 3600
liczbą sekund na godzinę).źródło
C, C ++, Java, C #, D: 36 bajtów
D: 35 bajtów
C: 28 bajtów
Po raz pierwszy mam tak krótką odpowiedź!
D może mieć specjalną optymalizację ze względu na system szablonów golfy:
C ma specjalną optymalizację z domyślną int:
Kod do przetestowania
W C (należy dołączyć
stdio.h
):Link TIO
W C ++ (należy dołączyć
iostream
):Wypróbuj online!
W Javie :
Wypróbuj online!
W C #
W D (trzeba zaimportować
std.stdio
) (dokładnie, nie mam pojęcia, jak używać tablic w D):Link TIO
źródło
foreach
w D, po prostu zapomniałem, jak go używać ze smutkiem)Pyth -
98 bajtówKonwertuje dane wejściowe na bazę 100, a następnie interpretuje to jako liczbę bazową 60.
Pakiet testowy .
źródło
TI-Basic (seria 83), 8 bajtów
Wymaga systemu operacyjnego w wersji 1.15 lub nowszej.
źródło
dc , 10 bajtów
Wypróbuj online!
Objaśnienie: w DC, gdy naciskasz coś. na stosie idzie na wierzch
źródło
Bash bc + sed,
3028 bajtów-2 bajty dzięki @seshoumara .
Wypróbuj online!
Pobiera dane wejściowe ze standardowego wejścia. Poszedł do bardziej kreatywnego podejścia: wstawia
*60+
przed ostatnią 1 lub 2 cyframi i przygotowuje0
od początku do uwzględnienia danych wejściowych zawierających tylko 1 lub 2 cyfry. Wynik jest następnie przekazywany dobc
.źródło
-r
i użyjesz\?
, możesz stracić 2 bajty.C (gcc) , 50 bajtów
Wypróbuj online!
źródło
f(t){return t%100+t/100*60;}
. Funkcje mogą przyjmować dane wejściowe jako argumenty i dane wyjściowe za pośrednictwem ich zwracanych wartości.f(i,x){x=i/100*60+i%100;}
f(i,x){x=i-i/100*40;}
Perl 5, 15 + 1 (-p) bajtów
Wypróbuj online
źródło
Java 8, 13 bajtów
Niesamowita formuła Python 2 w Port @ovs .
Wypróbuj tutaj.
źródło
JavaScript, 21 bajtów
Wypróbuj online!
źródło
J , 12 bajtów
Jest to rozwiązanie Pythona 2 wyrażone w J. Składa się z haka i widelca:
Wypróbuj online!
źródło
60#.0 100#:]
.Partia, 23 bajty
źródło
Haskell , 18 bajtów
Wypróbuj online!
Port Anotha.
Rozwiązanie Pointfree, 21 bajtów
źródło
Labirynt , 19 bajtów
Wypróbuj online!
Wyjaśnienie
IP trafia w ślepy zaułek i zaczyna się cofać. Kiedy dotrze do
/
, próbuje podzielić przez zero, co kończy program.źródło
Galaretka , 5 bajtów
Jako monadyczny link (dzięki za heads-up, caird!):
Wypróbuj online!
... lub jako pełny program:
Można to łatwo przenieść do 05AB1E, więc:
05AB1E , 5 bajtów
Wypróbuj online!
Po prostu konwertuje wejściową liczbę całkowitą na bazę 100, a następnie konwertuje wynik z podstawy 60 na liczbę całkowitą. W związku z tym odpowiada to wejściowemu% 100 + 60 * ⌊Wejście / 100⌋
źródło
Excel VBA, 29 bajtów
Anonimowa funkcja bezpośredniego okna VBE, która przenosi dane wejściowe z zakresu
[A1]
i wyjścia do bezpośredniego okna VBE.źródło
APL (Dyalog) ,
1110 bajtówWypróbuj online!
W jaki sposób?
0 100⊤
- kodować w bazie 100, zatrzymując się na drugim LSB, skutecznie wytwarzającn ÷ 100, n % 100
.60⊥
- dekodować w bazie 60źródło
PARI / GP , 16 bajtów
Bezpośredni:
Niestety, ta przyjemna metoda jest po prostu zbyt długa do użycia:
źródło
Pushy ,
109 bajtówKevin obezwładnił mnie w moim własnym języku ... (używając podejścia z odpowiedzi ovs )
Wypróbuj online!
10 bajtów
Wypróbuj online!
11 bajtów
Jeszcze jeden bajt możemy zastosować
Input % 100 + 60 * ⌊Input / 100⌋
podejście:Wypróbuj online!
źródło
2dH/40*-#
. Nigdy wcześniej nie programowany w Pushy, ale wygląda na całkiem fajny język. :)05AB1E , 9 bajtów
Wypróbuj online!
Wyjaśnienie:
Prawdopodobnie istnieje pewna sztuczka z podstawowymi konwersjami, którą można osiągnąć w 05AB1E, ale nie mogłem jej znaleźć.
źródło
bash, 20 bajtów
Wypróbuj online
źródło
Siatkówka , 11 bajtów
Wypróbuj online!
Wejście i wyjście unary . Dla wygody zestaw testów konwertuje zi na dziesiętny.
Wykonanie tego rodzaju konwersji podstawowej tylko dla maksymalnie dwóch cyfr jest zaskakująco proste do zrobienia w pojedynczej jednostce. Po prostu dopasowujemy przebiegi 100
1
s i zastępujemy je 601
s. Wszystko, co pozostanie, odpowiada dwóm ostatnim cyfrom w postaci dziesiętnej i pozostaje niezmienione.źródło
Alice , 19 bajtów
Wypróbuj online!
Wyjaśnienie
Szkoda, że usunąłem divmod z języka, tak myślę ...
Jest to zwykła struktura dla programów liniowych z dziesiętnymi operacjami we / wy działającymi wyłącznie w trybie kardynalnym (arytmetycznym).
źródło
Droga Mleczna , 10 bajtów
stosowanie:
./mw code.mwg -i 9999
Wyjaśnienie:
źródło
R , 21 bajtów
Wypróbuj online!
źródło
scan
ponieważ większość odpowiedzi zakłada, że zmienna jest już zdefiniowana.Common Lisp, 34 bajty
Wypróbuj online!
Kolejny port formuły @ovs .
źródło
REXX, 25 bajtów
(Tylko kolejne tłumaczenia @ovs)
źródło
05AB1E , 7 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Symboliczny Python , 66 bajtów
Wypróbuj online!
Wyjaśnienie
źródło