Zadanie
Napisz program, który weźmie (jako dane wejściowe) dodatnią liczbę całkowitą. Następnie odlicza 0
, dodając każdą liczbę całkowitą do a String
, kontynuując tylko, jeśli długość String
jest mniejsza niż wartość wejściowa.
Odcinkach liczba całkowita jest określona jako w pełni uformowanej całkowitą o maksymalnej wartości należące doString
. Przez „w pełni uformowany” liczba całkowita nie powinna zawierać brakujących cyfr (co mogłoby się zdarzyć, gdyby spełnione było ograniczenie długości String
).
Wyjście programu powinno być serializowaną liczbą całkowitą dla jego odpowiedniego, dodatniego wejścia.
Zasady
- To jest golf golfowy, więc wygrywa najkrótsza odpowiedź (w bajtach)!
- Dane wejściowe zawsze będą dodatnie.
- Dane wyjściowe muszą być liczbami całkowitymi w bazie 10 (dziesiętne).
- Program musi być indeksowany jako 0.
Przykładowe dane wejściowe | Wynik
5 | 4 (0 1 2 3 4 - Length of 5)
11 | 9 (0 1 2 3 4 5 6 7 8 9 1 - Length of 11)
12 | 10 (0 1 2 3 4 5 6 7 8 9 10 - Length of 12)
1024 | 377 (0 1 2 3 4 5 6 7 8 ... - Length of 1024)
Uwaga (y)
- Jeśli masz jakieś pytania (lub chciałbym podać więcej przykładów), proszę o komentarz!
- Inspiracja: /programming/45034478/how-do-i-calculate-the-maximum-serialized-integers-in-1024-length-limit
11
N-1
cyfry stałej Champernowne , z0
dopisaną?Odpowiedzi:
JavaScript (ES6),
4037 bajtówEdycja: Zapisano 3 bajty z pewną pomocą @Arnauld.
źródło
05AB1E ,
107 bajtówPomysł na użycie prefiksów z odpowiedzi Jonathan's Jelly
Wypróbuj online!
Wyjaśnienie
źródło
Python 2 , 55 bajtów
Rekurencyjne lambda od portu @ officialaimm za odpowiedź .
Wypróbuj online!
źródło
Japt , 13 bajtów
Przetestuj online!
Wyjaśnienie
źródło
PHP , 56 bajtów
Wypróbuj online!
źródło
Haskell ,
555350 bajtówWypróbuj online!
Wykorzystanie jest
(1024#"") 0
źródło
Python 2 ,
60 5958 bajtówWypróbuj online!
źródło
Galaretka ,
11 109 bajtówŁącze monadyczne przyjmujące dodatnią liczbę całkowitą i zwracające nieujemną liczbę całkowitą.
Wypróbuj online!
W jaki sposób?
redagowanie...
źródło
Pyth,
87 bajtówWypróbuj online. Zestaw testowy.
źródło
< num seq
był również bardzo pomocny.Perl 6 , 36 bajtów
Wypróbuj online!
0 ...^ {...}
jest sekwencją liczb od zera do jednej mniejszej niż liczba, dla której blok kodu w nawiasach klamrowych zwraca wartość true. (...
bez karetki zwróciłby pierwszą liczbę, dla której blok zwrócił wartość prawda).[~] 0 .. $^a
to konkatenacja liczb od0
bieżącej liczby$^a
(parametr do bloku kodu)..comb
to lista wszystkich znaków (cyfr) w połączonym ciągu. Zinterpretowany jako liczba, ocenia długość łańcucha..chars
byłoby bardziej naturalne użycie tutaj, ponieważ oblicza bezpośrednio długość łańcucha, ale nazwa jest dłuższa o jeden znak.$_
jest argumentem funkcji najwyższego poziomu.[*-1]
wybiera ostatni element wygenerowanej listy.źródło
QBIC , 34 bajty
Wyjaśnienie
źródło
Python 2 , 44 bajty
Wypróbuj online!
źródło
J, 26 bajtów
źródło
R , 43 bajty
Wypróbuj online!
źródło
WendyScript , 42 bajty
Wypróbuj online!
Nie golfowany:
źródło
PHP, 41 bajtów
Wypróbuj online .
źródło
Java 8, 64 bajty
Lub niewielkie alternatywy o tej samej liczbie bajtów:
Wyjaśnienie:
Wypróbuj tutaj.
źródło
Rubin , 39 bajtów
Wypróbuj online!
źródło
Rubinowy, 44 bajty
Zainspirowany odpowiedzią JAVA Kevina Cruijssena. -4 bajty dzięki G B.
źródło
Perl 5 , 31 + 1 (
-p
) = 32 bajtyWypróbuj online!
źródło