Biorąc pod uwagę dodatnią liczbę całkowitą n jako dane wejściowe, wypisuje sumę odwróconego zakresu n.
Odwrócona suma zakresu jest tworzona przez utworzenie przedziału obejmującego do n, zaczynając od 1 i włączając n, odwrócenie każdej liczby w środku i zsumowanie jej.
Przykład:
Oto, co stałoby się dla wejścia 10:
Zasięg: [1,2,3,4,5,6,7,8,9,10]
Odwrotny: [1,2,3,4,5,6,7,8,9,01]
(1-znakowe liczby są odwrócone, 10 odwróconych to 01 lub 1)
Suma: 46
Liczby z 3+ cyframi są odwracane w taki sam sposób, jak cyfry z 2 cyframi. Na przykład 1234 stałby się 4321.
Przypadki testowe:
Input -> Output
10 -> 46
5 -> 15
21 -> 519
58 -> 2350
75 -> 3147
999 -> 454545
Kompletne przypadki tekstowe do wprowadzenia 999 można znaleźć tutaj , bardzo dzięki @ fireflame241.
code-golf
number
arithmetic
Towarzyszu SparklePony
źródło
źródło
Odpowiedzi:
05AB1E , 3 bajty
Kod
Wykorzystuje kodowanie 05AB1E . Wypróbuj online!
Wyjaśnienie
źródło
Reverse
powinno byćReverse each
właściwie ...R
, aí
„odwróć”.Narzędzia Bash + GNU, 24
Wypróbuj online .
Wyjaśnienie
źródło
JavaScript (ES6), 42 bajty
Moje ulubione podwójnie rekurencyjne rozwiązanie jest niestety o 3 bajty dłuższe:
źródło
Perl 6 , 20 bajtów
Sprawdź to
Rozszerzony:
źródło
».flip
wywołuje.flip
metodę na każdej wartości w zakresie. Kolejnym najkrótszym sposobem na to.map(*.flip)
jest 5 bajtów więcej.».flip
to wywołanie metody hyper. Chociaż mogę podzielić»
i.flip
używając spacji,\
tak jak przedtem; utrudniłoby to zrozumienie, ponieważ wyglądałoby to na koniecqqww/ /
konstrukcji (« a b "c d" »
).Retina ,
413635 bajtówWypróbuj online! Link zawiera przypadki testowe. Edycja: Zapisano 5 bajtów dzięki @FryAmTheEggman. Zapisano 1 bajt dzięki @ PunPun1000. Wyjaśnienie:
Konwertuj na unary.
Utwórz zakres od
1
don
.Konwertuj z powrotem na dziesiętne.
Odwróć każdą liczbę.
Konwertuj z powrotem na jednoargumentowy.
Suma i przelicz z powrotem na dziesiętne.
źródło
¶
w.+¶
meczu będzie pasował do całej liniiO^$s`.
odwrócenie całego łańcucha również działa.Galaretka , 4 bajty
Wypróbuj online!
W jaki sposób?
źródło
Haskell, 34 bajty
Prosty i bezpośredni.
źródło
C (gcc) , 63 bajty
Wypróbuj online!
źródło
cQuents , 4 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Python 2 , 38 bajtów
Nie można obliczyć warunków wyższych niż limit rekurencji:
Wypróbuj online!
źródło
import sys
asys.setrecursionlimit()
jeśli chcesz obsługiwać większe liczby, w nagłówku tio.Brachylog , 4 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Röda ,
564136 bajtów15 bajtów zapisanych dzięki @fergusq
Wypróbuj online!
Jest to anonimowa funkcja, która pobiera liczbę całkowitą ze strumienia wejściowego i wyprowadza liczbę całkowitą do strumienia wyjściowego.
Wyjaśnienie
źródło
[::-1]
zamiast odwrotnej. Również `$_
` jest krótszy niż_..""
i nawiasy po parseInteger nie są potrzebne.C # (.NET Core) ,
10397 bajtówWypróbuj online!
Link TIO wyświetla wszystkie wyniki od 1 do 999, więc nie krępuj się sprawdzić moją pracę.
Spodziewałem się, że będzie to nieco krótsze, ale okazuje się
Reverse()
zwracaIEnumerable<char>
zamiast innego ciągu, więc musiałem dodać trochę więcej, aby przekształcić go z powrotem w ciąg, aby móc go przeanalizować jako wartość całkowitą. Może jest krótsza droga do przejścia odIEnumerable<char>
int do poprawnie.Co ważne, wykorzystuje to również funkcjeRange()
Reverse()
iSum()
wszystko w porządku.-6 bajtów dzięki TheLethalCoder
źródło
new int[r]
i.Select((_,n)=>...)
pozwoli ci zaoszczędzić bajty.new int[r+1]
uzyskania prawidłowego wyniku, ponieważ indeks zaczyna się od 0, ale nadal zachowuje kilka bajtów. RIPRange()
jednakRubin,
56, 52, 41,39 bajtówRuby, 34 bajty (jeśli parametr lambda jest ciągiem)
Dzięki @Unihedron za drugie rozwiązanie.
źródło
->n{
działa również.?a..?z
i?a1..?h8
(choć lepiej uważaj na drugi format: D)succ
i 2. (jeśli wartość początkowa lub końcowa nie jest implementowanasucc
) muszą być numeryczne, więcint..string
zostaną odrzucone jako „Zła wartość dla zakresu”. Odwrotność jest prawdziwa (ale niestety nie ma zasięgu(?1..n)
Mathematica, 47 bajtów
Wypróbuj online! (aby pracować z matematyką, musimy zamienić „Tr” na „Total”)
źródło
Tr@*IntegerReverse@*Range
Węgiel drzewny ,
1413 bajtów-1 bajt dzięki Carlos Alejo
Wypróbuj online! Link jest do pełnej wersji.
Wyjaśnienie
źródło
»
. Nawiasem mówiąc, gdzie w wiki CharcoalReduce
operator jest udokumentowany?Modulo
operatora do formatowania ciągów znaków na węglu drzewnym?Magneson , 102 bajty
To nie jest bardzo widoczne, więc oto wersja przeskalowana (uwaga: tak naprawdę nie będzie działać i nadal nie jest ładna)
Magneson działa poprzez parsowanie obrazu i ocenę poleceń na podstawie kolorów czytanych pikseli. Dlatego przechodząc przez obraz tego wyzwania, mamy:
R: 0, G: 1, B: 1
to komenda przypisania liczb całkowitych, która pobiera ciąg nazwy zmiennej i wartości do przypisania. Użyjemy tego do przechowywania łącznej sumy.R: 0, G: 1, B: 0
jest wstępnie zbudowanym ciągiem o wartościVAR_1
(Uwaga: dzieje się tak tylko wtedy, gdy prosimy o ciąg; kod koloru ma osobną funkcję, gdy jest używany gdzie indziej).R: 3, G: 0, B: 0
jest liczbą surową. Magneson obsługuje standardowe liczby, wymagając, aby czerwony składnik miał dokładnie 3, a następnie tworzy liczbę, używając bezpośrednio niebieskiej wartości plus zielonej wartości pomnożonej przez 256. W tym przypadku otrzymujemy tylko liczbę 0.R: 0, G: 1, B: 1
to kolejne polecenie przypisania liczb całkowitych. Tym razem przechowujemy zmienną iteracyjną, aby śledzić, na jakiej liczbie się znajdujemyR: 0, G: 1, B: 1
jest wstępnie zbudowanym ciągiem o wartościVAR_2
(Raz jeszcze, tylko gdy potrzebujemy ciągu)R: 3, G: 0, B: 0
jest jeszcze raz liczbą 0. Na interesujące kawałki teraz.R: 1, G: 0, B: 0
wskazuje początek pętli. Pobiera to liczbę i wielokrotnie zapętla następujący fragment kodu.R: 2, G: 0, B: 0
jest funkcją STDIN, a przynajmniej wtedy, gdy potrzebujemy liczby. Odczytuje wiersz danych wejściowych z konsoli i zamienia go na liczbę, ponieważ poprosiliśmy o liczbę.R: 0, G: 8, B: 0
uruchamia nasz kod pętli i jest to polecenie addytywne. Dodaje to liczbę do zmiennej całkowitej, a zatem pobiera ciąg nazwy zmiennej i liczbę do dodania.R: 0, G: 1, B: 1
to wstępnie zbudowany ciągVAR_2
, który jest naszą zmienną iteracyjną.R: 3, G: 0, B: 1
jest liczbą surową, ale tym razem jest to liczba 1.R: 0, G: 8, B: 0
to kolejne polecenie dodawania.R: 0, G: 1, B: 0
jest ciągiemVAR_1
, który jest naszą sumą całkowitą.R: 0, G: 3, B: 0
to funkcja odwracająca ciąg. W kontekście pytania o liczbę, następnie konwertuje odwrócony ciąg na liczbę.R: 0, G: 2, B: 1
to komenda pobierania liczb całkowitych, która pobierze liczbę zapisaną w podanej zmiennej. W kontekście pytania o ciąg znaków (na przykład z polecenia odwrotnego) konwertuje liczbę na ciąg znaków.R: 0, G: 1, B: 1
to imięVAR_2
; nasza zmienna iteracyjna.R: 1, G: 0, B: 1
jest znacznikiem kończącym pętlę i wracającym do początku pętli, jeśli kryteria nie są spełnione (więc jeśli musimy kontynuować pętlę). W przeciwnym razie przejdź dalej.R: 0, G: 0, B: 1
jest bardzo prostym poleceniem println i pobiera ciąg znaków.R: 0, G: 2, B: 1
pobiera liczbę całkowitą ze zmiennejR: 0, G: 1, B: 0
to nazwa naszej zmiennej sumarycznej,VAR_1
Podsumowując, program:
VAR_1
iVAR_2
VAR_2
VAR_2
doVAR_1
VAR_1
źródło
Python 2 ,
5047 bajtów-3 bajty dzięki oficjalnemu!
Wypróbuj online!
źródło
str
zapisywać 3 bajty.CJam , 12 bajtów
Wypróbuj online!
-1 dzięki Business Cat .
Wyjaśnienie:
źródło
,
APL (Dyalog) ,
107 bajtów3 bajty w golfa dzięki @ Adám, przechodząc na tradfn z pociągu
Wypróbuj online!
źródło
+/⍎⌽⍕⍳⎕
¨
było sprytne :)Java 8, 97 bajtów
EDYTOWAĆ
Zgodnie z komentarzem
Kevin Cruijssen
chciałbym poprawić swoją odpowiedź.Java 8, 103 bajty
źródło
Integer.valueOf
można grać w golfanew Integer
i.reverse().toString()
można grać w golfa.reverse()+""
. Ponadto należy podać wymagane parametry importu i lambda, takie jakjava.util.stream.IntStream
in->
przed nim. A można też golfIntStream
iInteger
doLongStream
aLong
. Ostateczna odpowiedź ton->java.util.stream.LongStream.range(1,n+1).map(i->new Long(new StringBuffer(""+i).reverse()+"")).sum()
( 103 bajty - Twoja aktualna odpowiedź z dodanym importem i parametrem lambda to 117 bajtów ). Wciąż +1, ładna odpowiedź!Japt ,
75 bajtów-2 bajty dzięki @Shaggy.
Wypróbuj online!
Wyjaśnienie
Stare rozwiązanie, 7 bajtów
Zachowuję to, ponieważ jest to naprawdę fajne zastosowanie
z2
.Wypróbuj online!
Wyjaśnienie
źródło
z2
na płaskiej tablicy jest to samow
, co ... hmm ... przepraszam za moją nieadekwatność w Japt ...õ_swÃx
dzięki nowemu dodaniuN.s(f)
.õs xw
na 5 bajtów.z2
sztuczkę; to był cholernie geniusz. Pamiętaj, że niekonkurowanie nie jest już rzeczą .C ++, 146 bajtów
źródło
auto
.auto
potrzebne jest słowo kluczoweusing namespace std;
zapisywanie bajtów.Łuska ,
7 63 bajtówWypróbuj online!
Niegolfowane / Wyjaśnienie
źródło
Perl 5 ,
29 2722 + 1 (-p
) = 23 bajtyWypróbuj online!
źródło
map$r+=reverse,1..<>;say$r
.-p
RProgN 2 , 8 bajtów
Wyjaśnił
Wypróbuj online!
źródło
Pyth ,
86 bajtów-2 bajty dzięki FryAmTheEggman!
Wypróbuj online!
źródło
sms_`dS
która nie nadużywa domyślnieU
na końcu.Tcl , 66 bajtów
Wypróbuj online!
źródło
Neim , 4 bajty
Wypróbuj online!
Wyjaśnienie
źródło
𝐈Ψ𝐫𝐬
(utwórz zakres obejmujący, odwróć każdy element, suma)Ψ
token istnieje! na pewno skorzystałbym z tego z perspektywy czasu. naprawdę fajnieC (gcc) , 71 bajtów
Wypróbuj online!
źródło
f()
zwraca wynik bez żadnegoreturn
oświadczenia? Czye=a
instrukcja manipuluje rejestrami w taki sposób, że wynik jest przechowywany w tym samym rejestrze, który jest używany przez zwracane wartości?