Biorąc pod uwagę, dodatnia n
( Przykład:n=1234444999
)
- Podziel na kolejne cyfry:
[1, 2, 3, 4444, 999]
- Weź cyfrowy produkt każdego biegu.
[1, 2, 3, 4*4*4*4, 9*9*9] = [1, 2, 3, 256, 729]
- Zsumuj to ...
- 991
- Powtarzaj, aż zbiegnie się to w jedną liczbę:
- 1234444999
- 991
- 82
- 10
- 1
- Zwróć ostatni numer.
Przypadki testowe
BASE CASES:
0 = 0
...
9 = 9
OTHER CASES:
1234444999 = 1
222222222222222 = 8
111222333444555666777888999000 = 9
11122233344455566677788899 = 8
1112223334445 = 6
14536 = 1
99 = 9
Prośba o przykład:
334455553666333
9+16+625+3+216+27
896
8+9+6
23
2+3
**5**
Zwycięski?
Jest to golf golfowy , zwycięzcą jest najniższa liczba bajtów.
11122233344455566677788899
.33445555666333
?Odpowiedzi:
05AB1E ,
765 bajtówDzięki Emignie za uratowanie bajtu!
Wykorzystuje kodowanie 05AB1E . Wypróbuj online!
źródło
gF
zv
.Galaretka, 9 bajtów
Wypróbuj online
Oto jak to działa:
źródło
€
.Œg
jest niespójny, gdy jest tylko jedna grupa. Jakie jest tego uzasadnienie?Mathematica,
5542 bajtów-13 bajtów od @JungHwan Min . Dzięki!
na wypadek, gdyby ktoś chciał użyć tego jako generatora liczb losowych,
oto suma pierwszych 100 000 liczb
źródło
Japt ,
171513 bajtówPrzetestuj online! Pobiera dane wejściowe jako ciąg.
Wciąż niezadowolony z tej odpowiedzi ...
Wyjaśnienie
źródło
x_×
połączeniu zI'm unsatisfied
rozśmieszyłem mnie. Dzięki ;).ß
może być droga do tego miejsca. Myliłem się! (Przynajmniej o wpół do piątej rano siedziałem w autobusie na lotnisko, na którym byłem!)Python 3 , 96 bajtów
Wypróbuj online!
źródło
Brachylog , 8 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Pyth, 11 bajtów
Wypróbuj online. Zestaw testowy.
źródło
PHP , 113 bajtów
Wypróbuj online!
źródło
Łuska , 8 bajtów
Bierze i zwraca liczbę całkowitą. Wypróbuj online!
Wyjaśnienie
Mając wbudowane 10 podstawowych cyfr, byłoby miło ...
źródło
JavaScript (ES6),
77736765 bajtówZaoszczędź 2 bajty dzięki @CraigAyre
W jaki sposób?
Dane wejściowe s przekształca się w wyrażenie arytmetyczne za pomocą:
Na przykład
1234444999
staje się+1+2+3+4*4*4*4+9*9*9
.Oceniamy to wyrażenie i wykonujemy wywołanie rekurencyjne z wynikiem, aż zostanie sprowadzone do jednej cyfry dziesiętnej.
Przypadki testowe
Pokaż fragment kodu
źródło
f=s=>s>9?f(''+eval(s.replace(/(.)\1*/g,s=>'+'+[...s].join`*`))):s
CJam , 22 bajty
Wypróbuj online!
źródło
Haskell ,
1037069 bajtówWypróbuj online!
źródło
until(<10)
. Równieżmap(read.pure)
można przesuwać przedshow
, co oszczędza nawiasów.$
zamiast zewnętrznych nawiasów.R ,
114104 bajtówczyta ze standardowego; zwraca odpowiedź jako ciąg znaków.
Wypróbuj online!
źródło
paste
zamiastas.character
. Ten pierwszy wymusza wprowadzanie tekstucharacter
;-)MATL, 11 bajtów
Wypróbuj w MATL Online
Wyjaśnienie
źródło
Perl 5 , 50 bajtów
49 bajtów kodu +
-p
flaga.Wypróbuj online!
źródło
R,
9796 bajtówNieco inne podejście niż w pozostałych odpowiedzi przy użyciu R .
Ta odpowiedź korzysta z
rle
funkcji, któracompute[s] the lengths and values of runs of equal values in a vector
.-1 bajtów dzięki @Giuseppe!
źródło
**
jest równoważne^
Braingolf, 25 bajtów
Dodam link do TIO, kiedy Dennis pobierze najnowszą wersję, ponieważ używanie chciwych operatorów w
(...)
pętlach jest obecnie zepsute w TIOWyjaśnienie
źródło
Japt , 19 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło