Twoje zgłoszenie musi zawierać listę liczb (w dowolnym formacie listy obsługiwanym przez Twój język lub przy użyciu wielu parametrów funkcji / wiersza poleceń) lub ciąg liczb oddzielonych dowolnymi znakami, które nie są 0123456789
. W jednym języku musi dodać je wszystkie i wygenerować sumę. W innym języku musi wyprowadzać je odejmowane od siebie w kolejności. Przykład:
12
5
7
2
W jednym języku musi generować 26
, aw innym musi generować -2
. Zauważ, że wszystkie wprowadzone liczby będą dodatnimi liczbami całkowitymi mniejszymi niż 100
. Nigdy nie będzie więcej niż20
liczb, więc nigdy nie wydasz więcej niż 2000
lub mniej niż -1899
. Jakieś pytania? Komentarz poniżej!
[code-golf] -[polyglot]
?Odpowiedzi:
Galaretka / 05AB1E , 3 bajty
To jest zrzut heksadecymalny (xxd) przesłanego programu.
Wypróbuj online!
Galaretka: Suma
Galaretka używa strony kodowej Galaretka , więc widzi następujące znaki.
Wypróbuj online!
Jak to działa
05AB1E: Różnica
05AB1E używa Windows-1252 , więc widzi następujące znaki.
Wypróbuj online!
Jak to działa
źródło
Python 2/3, 52 bajty
int(1-(1/2)*4)
zwraca1
w Pythonie 2, ponieważ1/2
najpierw ocenia0
, a potem0 * 4 = 0
.int(1-(1/2)*4)
zwraca-1
w Pythonie 3, ponieważ1/2
najpierw ocenia0.5
, a potemint(0.5 * 4) = int(2.0) = 2
.źródło
C i C ++ (oba z GCC),
817573 bajtówPobiera wskaźnik do tablicy i długości.
Objaśnienie: nadal używa wyjaśnienia @Steadybox ': p W C,
auto d=.5
deklaruje zmienną całkowitą z klasą auto storage (która jest wartością domyślną), która jest następnie inicjowana na 0, podczas gdy w C ++ 11 deklaruje podwójną, która jest inicjowana do 0,5.C - plus język: Wypróbuj online!
C ++ - minus language: Wypróbuj online!
źródło
05AB1E / galaretka , 5 bajtów
Wypróbuj online! (05AB1E)
Wypróbuj online! (Galareta)
05AB1E widzi :
Wyjaśnienie:Galaretka widzi :
Wyjaśnienie:źródło
7f
.Właściwie / galaretka , 4 bajty
To jest zrzut heksadecymalny (xxd) przesłanego programu. Nie można go przetestować w surowej postaci online; TIO nie obsługuje kodowania CP437.
Właściwie: Suma
Właściwie używa CP 437 , więc widzi następujące znaki.
Wypróbuj online!
Jak to działa
Galaretka: różnica
Galaretka używa strony kodowej Galaretka , więc widzi następujące znaki.
Wypróbuj online!
Jak to działa
źródło
actually, Jelly.
:)ṛ
ü
przypisał on idealną funkcję> _>jelly, actually
.Python 2 i 3,
4441 bajtówPobiera liczby rozdzielone spacjami.
-3 bajty dzięki @JonathanAllan
Wypróbuj online: Python 2 (minus) Python 3 (plus)
źródło
'-+'[1/2>0]
aby zapisać trzy bajty.CJam / Galaretka , 6 bajtów
CJam
Wypróbuj online!
Galareta
(używając UTF-8, a nie strony kodowej Jelly)
q~:-
jest linkiem pomocniczym. Ponieważ nie można go wywołać, tak naprawdę nie ma znaczenia, co robi.S
oblicza sumę tablicy.Wypróbuj online!
źródło
q~:-½S
. Niestety fix (q~:-e#\x7fS
) jest większy. Wypróbuj online! (CJam) i wypróbuj online! , każdy z własnym kodowaniem do przetestowania na własną rękę.JavaScript / Cubix, 36 bajtów
Spróbuj!
Funkcję JavaScript można przetestować za pomocą poniższego fragmentu, program Cubix można przetestować tutaj .
Jak to działa?
JavaScript
Pierwszy wiersz jest komentarzem do kodu JavaScript, ponieważ zaczyna się od dwóch ukośników, więc JavaScript widzi tylko dolną linię (
a=>eval(a.join`-`)
), która pobiera tablicę jako dane wejściowe, łączy ją ze znakami minus pomiędzy nimi, a następnie uruchamia ją jako kod, w wyniku czego odejmowanie wszystkich elementów w tablicy.Cubix
Cubix widzi następujący sześcian (zauważ, że Cubix ignoruje wszystkie białe znaki):
Początek
Adres IP zaczyna się na trzeciej linii, wskazując na wschód. Uderza w
'I'
polecenie, które pobiera liczbę z wejścia i wypycha ją na stos. Następnie jest przekierowywany'^'
do pętli sumowania.Pętla sumy
Usunąłem wszystkie znaki nie będące częścią pętli sumy i zastąpiłem je no-ops (
'.'
). IP początkowo dociera do drugiej linii, wskazując na wschód.Najpierw
'!'
polecenie sprawdza górny element. Jeśli tak jest0
(tzn. Osiągnęliśmy koniec wejścia), wykonywana jest następna instrukcja ('v'
), odzwierciedlająca adres IP poza pętlą. Jeśli nie osiągnęliśmy jeszcze końca danych wejściowych, dodajemy razem dwa górne elementy ('+'
, drugi element jest sumą do tego momentu, górny element to nowe dane wejściowe). Następnie IP zawija się do innej powierzchni sześcianu, w'u'
znak, co powoduje, że IP wykonuje zawracanie i wykonuje'I'
polecenie (czytaj kolejną liczbę całkowitą), wskazując na północ. Adres IP wraca do górnej powierzchni, pomija ('$'
) instrukcję usuwania (';'
) i wykonuje kolejny zwrot w tył, do punktu, w którym zaczęliśmy.Koniec
Jeśli adres IP jest odzwierciedlany poza pętlą, wykonywane są następujące znaki:
Instrukcje te usuwają górny element (który jest zero), a następnie wypisują górny element (sumę) jako liczbę całkowitą. Następnie
'@'
polecenie zostaje osiągnięte, więc program się kończy.źródło
Python 2 i 3, 33 bajty
Traktuje dane wejściowe jako osobne parametry.
Python 2.
Python 3.
źródło
lambda l,*r:l+sum(r)*(1/2-.5)*2
dla 31 bajtów*(1/2*4-1)
to bajt jest mniejszy niż twój.JS (ES6), CGL (CGL Golfing Language) ,
3226 bajtówJS wykonuje odejmowanie, a CGL dodaje.
JS:
Anonimowa funkcja, która odejmuje każdy element w tablicy za pomocą
Array#reduce
.Komentarz.
CGL
To, co wygląda na spację w pierwszym wierszu, jest w rzeczywistości spacją nierozdzielającą, komentarzem w CGL. Pierwszy wiersz jest ignorowany.
Do
/
s nic nie robić. Zmniejsza-
bieżący wskaźnik stosu, aby wskazywał na dane wejściowe.⨥
dodaje razem bieżący stos (dane wejściowe), wypycha go do następnego stosu i zwiększa bieżący stos. Jest niejawnie wyprowadzony.źródło
x=>eval(x.join`-`)
, zapisując 5BJavaScript (ES6) / QBasic,
8483 bajtyKolejne rozwiązanie z dodaniem komentarza!
JavaScript oblicza sumę. Pobiera tablicę zawierającą liczby jako dane wejściowe. Wyjścia jako funkcja
return
. Możesz wywołać funkcję jakalert(f([10,20,30]))
.QBasic oblicza różnicę. Wielokrotnie prosi o dane wejściowe. Jak tylko wpiszesz wartość, wyświetli różnicę wszystkich wprowadzonych liczb do momentu uderzenia Enteri ponownie poprosi o wprowadzenie. Robi to samo do końca wszystkiego.
Jak to działa?
W QBasic (język ustrukturyzowanej rodziny BASIC; nie wymaga numerów linii),
'
oznacza początek komentarza, który trwa do końca linii. Natomiast w JavaScript oznacza początek łańcucha. Tak więc cały pierwszy wiersz jest oznaczony jako komentarz w QBasic, ale w JavaScript wiersz jest wykonywany (i ten wiersz zawiera część JavaScript, która dodaje liczby, a także/*
na końcu, który rozpoczyna komentarz w celu ukrycia reszty kodu QBasic z interpretera JavaScript).Kod z drugiej linii do drugiej ostatniej linii zawiera kod QBasic do obliczenia różnicy wszystkich liczb wejściowych (kod jest bardzo zrozumiały).
Ostatni wiersz zawiera
'*/
.'
powoduje, że interpreter QBasic interpretuje następujący kod jako komentarz, podczas gdy w JavaScript nie ma żadnego efektu, ponieważ jest częścią komentarza (który został uruchomiony na końcu pierwszego wiersza). Poniższy kod (*/
) powoduje, że JavaScript kończy komentarz, który został uruchomiony w pierwszym wierszu, ale nie jest wykonywany w QBasic, ponieważ QBasic uważa, że jest to część komentarza.Przypadki testowe
JavaScript (dodaje):
QBasic (odejmuje):
Przejdź do tej strony . Skopiuj wklej następujący kod w ich edytorze tekstu:
Powodem, dla którego numery linii są wymagane, jest to, że wspomniana strona internetowa obsługuje tylko nieustrukturyzowane języki BASIC. I ta strona internetowa jest jedynym przyzwoitym tłumaczem BASIC, jaki udało mi się znaleźć. Jednak uruchomienie kodu znajdującego się w górnej części postu (kod bez numerów linii) powinno działać dobrze w każdym dobrym interpreterie QBasic, który obsługuje ustrukturyzowany język BASIC i
'
jako narzędzie do komentowania (choć niewielu tego nie robi, większość jednak).Notatki
END
ponieważ interpreter nigdy go nie osiągnie! (Na zawsze utknie w nieskończonej pętli; zawsze prosi o więcej danych wejściowych.)źródło
Brain-Flak / Brain-Flueue , 20 bajtów
Wypróbuj online! (Brain-Flak) (plus)
Wypróbuj online! (Brain-Flueue) (minus)
Wyjaśnienie
Jedyną różnicą między Brain-Flak i Brain-Flueue jest to, że Brain-Flueue zastępuje dwa stosy (ostatni na pierwszym wyjściu) użyte w Brain-Flak na dwie kolejki (pierwsze na pierwszym wyjściu). Oczywiście ten program wykorzystuje tę różnicę.
Kod z adnotacjami
źródło