W tym wyzwaniu 2 lata temu znaleźliśmy okres ułamka jednostkowego ( 1/n where n is a natural number
).
Teraz Twoim zadaniem jest napisanie programu / funkcji, aby znaleźć powtórzenie ułamka jednostkowego.
Repetend jest częścią ekspansji dziesiętną, która powtarza się w nieskończoność, takich jak:
- Dziesiętna reprezentacja
1/6
to0.16666...
, a następnie powtórzenie jest6
. - Dziesiętna reprezentacja
1/11
to0.090909...
, a następnie powtórzenie jest09
. - Dziesiętna reprezentacja
1/28
to0.0357142857142857142857...
, a następnie powtórzenie jest571428
.
Okular
- Wprowadź w dowolnym rozsądnym formacie.
- Wypisuje powtórzenie w postaci dziesiętnej, ciągu lub listy .
- W przypadku
1/7
(0.142857142857...
) musisz wyprowadzać dane142857
zamiast428571
. - W przypadku
1/13
(0.076923076923076923...
) musisz wyprowadzać dane076923
zamiast76923
. - Proszę nie brutalnej siły.
Przypadki testowe
Input Output
1 0
2 0
3 3
7 142857
13 076923
17 0588235294117647
28 571428
70 142857
98 102040816326530612244897959183673469387755
9899 000101020305081321345590463683200323264976260228305889483786241034447924032730578846348115971310233356904737852308313971108192746742095161127386604707546216789574704515607637135064147893726639054449944438832205273259925244974239822204263056874431760783917567431053641781998181634508536215779371653702394181230427315890493989291847661379937367410849580765733912516415799575714718658450348520052530558642287099707041115264168097787655318719062531568845337912920497019901
Punktacja
To jest golf golfowy . Najkrótsze rozwiązanie w bajtach wygrywa.
Odpowiedź nie zostanie zaakceptowana, ponieważ celem nie jest znalezienie języka zdolnego do wytworzenia najkrótszego rozwiązania, ale najkrótsze rozwiązanie w każdym języku.
Tabela liderów
code-golf
math
arithmetic
number-theory
Leaky Nun
źródło
źródło
1/13
jest0.076923076923...
0.769230769230...
Odpowiedzi:
Java, 150 bajtów:
Dodano białe znaki:
Niegolfowany, pełny program:
źródło
for(;;)
byłoby mniej bajtów niżwhile(2<3)
będąc jednocześnie nieskończoną pętlą! (i mniej bajtów niżwhile(1)
również @Maltysen)a
ir
w pętli for. Oszczędza bajty!CJam, 26
Wypróbuj online
Wyjaśnienie:
Program buduje szereg dywidend zaangażowanych w obliczanie rozwinięcia dziesiętnego, dopóki nie znajdzie dywidendy, którą widział wcześniej. Następnie bierze wszystkie dywidendy, zaczynając od tego, i dzieli je przez n, aby uzyskać cyfry powtórzenia.
źródło
Python 3.5,
79747370 bajtówZaoszczędziłem 3 bajty, śledząc dywidendy, pomysł, który wziąłem z odpowiedzi CJam @ aditsu .
Przetestować go na repl.it .
źródło
Galaretka ,
1210 bajtówZaoszczędziłem 2 bajty, śledząc dywidendy, pomysł, który wziąłem z odpowiedzi CJam @ aditsu .
Wypróbuj online!
Jak to działa
źródło
GameMaker Language, 152 bajty
Na podstawie odpowiedzi Kenny'ego
źródło
Java, 122
Podobne do mojego rozwiązania CJam.
źródło
Perl 6 , 37 bajtów
Jeśli nie obchodzi Cię, że będzie działać tylko z mianownikami pasującymi do 64-bitowej liczby całkowitej, możesz usunąć wywołanie metody do
.FatRat
.Wyjaśnienie:
Test:
źródło
Pyth, 63 bajty
Wypróbuj online!
Bezpośrednie tłumaczenie odpowiedzi w Javie .
źródło
PHP, 169 bajtów
źródło