Podając liczbę jako dane wejściowe, wydrukuj jej sumę zbiorczą
Co to jest suma zbiorowa?
Rozważ liczbę 13214
, dane wejściowe
Pętląc każdą cyfrę zaczynając od lewej, będziemy mogli uzyskać jej sumę zbiorczą.
1
oznacza spójrz na pierwszą cyfrę i dodaj ją do sumy sum = 1
3
oznacza spójrz na „pierwsze 3 cyfry” i dodaj go do sumy, sum = 1 + 132
2
oznacza spójrz na „pierwsze 2 cyfry” i dodaj go do sumy, sum = 1 + 132 + 13
1
oznacza spójrz na pierwszą cyfrę i dodaj ją do sumy, sum = 1 + 132 + 13 + 1
4
oznacza spójrz na „pierwsze 4 cyfry” i dodaj go do sumy, sum = 1 + 132 + 13 + 1 + 1321
Suma całkowita = 1468
i to jest twój wynik
Przypadki specjalne:
Jeśli napotkamy a 0
, to oczywiście zachowamy tę samą sumę
The number 1301 would have a sum = 1 + 130 + 1 = 132
Jeśli napotkamy liczbę większą niż długość danych wejściowych, dodajemy wszystko
The number 251 would have a sum = 25 + 251 + 2 = 278
Przypadki testowe:
collectiveSum(0) = 0
collectiveSum(2) = 2
collectiveSum(2315) = 23 + 231 + 2 + 2315 = 2571
Najkrótsza ilość bajtów wygrywa. Miłej gry w golfa!
źródło
2315
przypadku testowym brakuje+ 2
oznaczenia1
i powinno to skutkować2571
.2571
.Odpowiedzi:
05AB1E ,
43 bajty-1 dzięki Kevin Cruijssen (użycie
€
unikania a}
)Wypróbuj online!
W jaki sposób?
źródło
ε£}
może być€£
zapisanie bajtu.€
wcześniej była już od dłuższego czasu w starszej wersji 05AB1E. Było już tam, kiedy opublikowałem swoją pierwszą odpowiedź 05AB1E w kwietniu 2018 r. Może być więc możliwe, że została dodana wkrótce po opublikowaniu tej odpowiedzi, ale nie jestem pewien.Python 2 , 43 bajty
Wypróbuj online!
źródło
ValueError
wejście1301
lub dowolne wejście, które ma zero jako jedną z jego cyfr.int
Funkcja może przyjąć liczbę całkowitą, zastępując'0'
ciągiem znaków z właśnie0
powinien zgolić jednego bajta.Python 2, 72 bajty
Pierwsze zgłoszenie! Dzięki @DestructibleLemon za pomoc!
źródło
Haskell,
4337 bajtówWypróbuj online!
Numer wejściowy jest traktowany jako ciąg.
źródło
Rubinowy , 36 bajtów
Wypróbuj online!
źródło
#sum
nie jest zdefiniowane w fixnums, więc zakładam, że chceszn
być ciągiem. JednakString#sum
obliczanot a particularly good checksum
i ignoruje blok ją podać. Jeśli miałeś na myślin.chars.sum{
,Enumerable#sum
nie ma go w ruby stdlib, jest to rozszerzenie dostarczane przez szyny. Sprawdź swoje rozwiązania przed ich opublikowaniem.Enumerable#sum
jest w Ruby 2.4 , a TIO używa 2.4JavaScript,
4240 bajtówDzięki @Shaggy za grę w golfa z 2 bajtów
Odbiera dane wejściowe jako ciąg znaków i zwraca liczbę całkowitą. Jak obecnie napisano, ten kod pozostawia zera na dowolnych liczbach całkowitych.
źródło
x=>[...x].map(y=>a+=+x.slice(0,y),a=0)|a
R, 57 bajtów
uratował jeszcze jeden dzięki @Vlo
był: Zapisano 4 bajty dzięki sugestii @Robert Hacken.
Proste podejście łańcuchowe.
źródło
unlist
nael
.sum(strtoi(substring(i<-scan(,""),1,el(strsplit(i,"")))))
C (gcc) , 106 bajtów
Wypróbuj online!
źródło
Węgiel drzewny , 10 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
źródło
Oktawa , 56 bajtów
Anonimowa funkcja, która pobiera ciąg jako argument wejściowy i zwraca liczbę jako wynik.
Wypróbuj online!
Krótsza wersja
działa w Matlabie, ponieważ
char(0)
jest traktowany jako spacja.źródło
Galaretka ,
75 bajtów-2 dzięki Dennisowi (głowa wektoryzuje>. <)
4, jeśli możemy wziąć listy cyfr *
Wypróbuj online!
*
ḣ`ḌS
W jaki sposób?
źródło
Perl 6 , 27 bajtów
Sprawdź to
Rozszerzony:
źródło
C (gcc) ,
7775 bajtówMusi zostać skompilowany z
-lm
przełącznikiem, inaczej GCC nie rozpoznaje funkcji matematycznych.Wypróbuj online!
źródło
dc , 55 bajtów
Bez ciągów ani tablic! Rzeczywiście, wymagane cyfry są uzyskiwane wyłącznie poprzez manipulację matematyczną.
Wypróbuj online!
źródło
Łuska , 6 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
J , 18 bajtów
Wyjaśnienie
Pobiera ciąg jako dane wejściowe
Wypróbuj online!
źródło
Japt, 5 bajtów
Pobiera dane wejściowe jako ciąg.
Spróbuj
Wyjaśnienie
źródło
Stax , 6 bajtów
Uruchom i debuguj online
Odpowiada to reprezentacji ascii tego samego programu.
źródło
Właściwie 10 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
JavaScript, 43 bajty
Jest już dobrze po trzeciej rano, dlaczego nadal gram w golfa ?!
Pobiera dane wejściowe jako ciąg.
Wypróbuj online
źródło
Perl 5, 26 bajtów
Obejmuje
+1
dlap
źródło
K4 , 22 bajty
Rozwiązanie:
Przykłady:
Wyjaśnienie:
Włam się do podstawy-10, weź z tego min każdej liczby i długość listy. Przelicz z powrotem i podsumuj.
źródło
Java 8, 92 bajty
Wyjaśnienie:
Wypróbuj online.
źródło
REXX 118 bajtów
Wypróbuj tutaj
Podaj wartość wejściową na karcie STDIN.
źródło
Python 3 , 66 bajtów
Wypróbuj online!
źródło
Galaretka , 6 bajtów
Wypróbuj online!
Zdobądź
D
igits wejścia, a następnie zdobądź pierwsze [każda cyfra] elementy wejścia (ḣ
ead), a następnie połączV
wszystkie sumy, aby znów była liczbą iS
um.źródło