Terminologia
Rosnąca liczba to taka, w której każda cyfra jest większa lub równa wszystkim cyfrom po jej lewej stronie (np. 12239)
Malejąca liczba to jedna, w której każda cyfra jest mniejsza lub równa wszystkim cyfrom po jej lewej stronie (np. 95531)
Skacząca liczba to dowolna liczba, która nie rośnie ani nie maleje. Ponieważ wymaga to co najmniej 3 cyfr, pierwszy numer sprężysty to 101
Zadanie
Biorąc pod uwagę liczbę całkowitą n większą lub równą 1, znajdź sumę pierwszych n liczb sprężystych
Zasady
- To jest kod golfowy, więc wygrywa odpowiedź z najmniejszą ilością bajtów
- Jeśli twój język ma ograniczenia wielkości całkowitych (np. 2 ^ 32-1), n będzie wystarczająco małe, aby suma zmieściła się w liczbie całkowitej
- Dane wejściowe mogą mieć dowolną rozsądną formę (standardowe wejście, plik, parametr wiersza poleceń, liczba całkowita, ciąg itp.)
- Dane wyjściowe mogą mieć dowolną rozsądną formę (standardowe wyjście, plik, graficzny element użytkownika, który wyświetla liczbę itp.)
Przypadki testowe
1 > 101
10 > 1065
44701 > 1096472981
sort
sprawdzić numery i sprawdzić, czy są takie same jak oryginalny numer? To używa wbudowanej funkcji (sort
), ale nie jest to ściśle wbudowana funkcja sprawdzania, czy rośnie. Sprawdź wymagania programu, których nie można zaobserwować, i wykonaj X bez Y w naszym wpisie „Rzeczy, których należy unikać”.Odpowiedzi:
Galaretka ,
108 bajtówWypróbuj online!
Jak to działa
źródło
ṚƬ
jest bardzo schludne ...Pyth , 10 bajtów
Wypróbuj tutaj!
Jak to działa?
źródło
K (ngn / k) , 37 bajtów
Wypróbuj online!
{
}
jest funkcją z argumentemx
x{
}\0
stosuje się{}
na0
x
czas, zachowując wyników pośrednich(1+)
jest funkcją następczą{
}(1+)/x+1
stosuje funkcję następcy odx+1
momentu, aż{}
zwraca true10\x
są cyframi dziesiętnymix
a:
Przypisać doa
|\
jest maksymalnym skanem (maksymalne częściowe) wynoszącyma
&\
analogicznie jest min-skana~|\a
niea
pasuje jej max-skan?|
luba~&\a
jego min-skan?+/
sumaźródło
JavaScript (ES6), 77 bajtów
Wypróbuj online!
Skomentował
źródło
Python 2,
1109289 bajtówWypróbuj online
Ta funkcja określa, czy liczba jest sprężysta:
źródło
set(map(cmp,`x`[:-1],`x`[1:]))
.map
tego używać .x=s=0\nwhile n:b={-1,1}<=set(map(cmp,`x`[:-1],`x`[1:]));s+=x*b;n-=b;x+=1
oszczędza 3 bajtyPython 2 , 84 bajtów
Wypróbuj online! Lub zobacz zestaw testowy .
źródło
Siatkówka , 93 bajty
Wypróbuj online! Wyjaśnienie:
Zainicjuj
s=i=0
. (s
to liczba#
s przed:
,i
liczba#
s po.)Powtórz
n
czasy.Powtarzaj, dopóki
i
nie jest sprężysty.Zwiększ
i
i zrób kopię dziesiętną.Konwertuj cyfry kopii na jednoargumentowe. Test bujności wykorzystuje jednoargumentową kopię, więc działa tylko raz
i
, co najmniej raz został zwiększony.Dodaj
i
dos
i usunąć kopię jednoargumentowych cyfr, tak, że po następnym przejściu wewnętrznej pętli bounciness test nie powiedzie się ii
zostanie zwiększona co najmniej raz.Konwertuj
s
na dziesiętny.Wersja 121 bajtów jest obliczana w systemie dziesiętnym, więc może działać dla większych wartości
n
:Wypróbuj online! Wyjaśnienie:
Zainicjuj
s=i=0
.Powtórz
n
czasy.Powtarzaj, dopóki
i
nie jest sprężysty.Zwiększ
i
i zrób kopię.Konwertuj cyfry kopii na jednoargumentowe. Test bujności wykorzystuje jednoargumentową kopię, więc działa tylko raz
i
, co najmniej raz został zwiększony.Dodaj
i
dos
i usunąć kopię jednoargumentowych cyfr, tak, że po następnym przejściu wewnętrznej pętli bounciness test nie powiedzie się ii
zostanie zwiększona co najmniej raz.Usuń
i
.źródło
05AB1E , 12 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Java 8,
114112 bajtówUżywa wyrażenia regularnego, aby sprawdzić, czy liczba rośnie, czy maleje. Wypróbuj online tutaj .
Nie golfowany:
źródło
Python 2, 250 bajtów
źródło
;
do umieszczenia jak największej liczby instrukcji w jednym wierszu, usunięcie białych znaków i zdefiniowanie funkcji dla 2 długich linii, które są bardzo podobne, abyś mógł ponownie użyć części kodu. Możesz także zrobića=b=s=0
ilen(g)!=h-1!=len(d)
.Stax , 14 bajtów
Uruchom i debuguj
źródło
Czerwony , 108 bajtów
Wypróbuj online!
Bardziej czytelny:
Dobra okazja do użycia
form
-form i
jest o 5 bajtów krótszy niżto-string i
źródło
MATL ,
3130 bajtówWypróbuj online!
źródło
R , 96 bajtów
Wypróbuj online!
Objaśnienie:
źródło
Rubinowy (123 bajty)
Wygląda mi dość brzydko. W tym bloku zdefiniowano bujność
x.sort!=x&&x.sort!=x.reverse
źródło
Rubinowy , 76 bajtów
Wypróbuj online!
źródło
C (gcc), 104 bajty
Wypróbuj online tutaj .
Nie golfowany:
źródło
u+=!y?--b,o:0,++o
zamiastu+=y?0:o+0*--b,++o
,;y&=(c-=n%10)<0?:c?2:y)c=n%10,n/=10;
zamiast;)c=n%10,n/=10,y&=(c-=n%10)<0?:c?2:y;