Biorąc pod uwagę liczbę całkowitą, wypisz prawdziwą wartość, jeśli w przeciwnym razie jest ona taka sama do góry nogami (obrócona o 180 °) lub wartość fałszowania .
0
, 1
i 8
mają symetrię obrotową. 6
staje się 9
i vice versa.
Sekwencja liczb dająca prawdziwe wyniki: OEIS A000787
0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, ...
To pytanie jest inspirowane przez moją własną reputację w czasie delegowania: 6009
.
code-golf
number
sequence
decision-problem
code-golf
string
parsing
c
code-golf
sorting
integer
code-golf
number
sequence
rational-numbers
graphical-output
atomic-code-golf
assembly
box-256
code-golf
geometry
tips
python
code-golf
number
sequence
arithmetic
number-theory
code-golf
ascii-art
kolmogorov-complexity
geometry
code-golf
graphical-output
code-golf
math
code-golf
grid
cellular-automata
game-of-life
code-golf
string
subsequence
code-golf
arithmetic
rational-numbers
code-golf
tips
dc
code-golf
ascii-art
kolmogorov-complexity
date
code-golf
string
primes
code-golf
string
natural-language
conversion
code-golf
sequence
code-golf
number-theory
primes
base-conversion
code-golf
math
primes
base-conversion
code-golf
ascii-art
fractal
code-golf
matrix
code-golf
math
tips
geometry
python
string
code-challenge
keyboard
code-golf
graphical-output
code-golf
string
code-golf
number
sequence
cops-and-robbers
number
sequence
cops-and-robbers
mbomb007
źródło
źródło
raw_input
, użytkownik wprowadzi liczbę całkowitą, która stanie się ciągiem za kulisami. W porządku.Odpowiedzi:
05AB1E ,
22161514 bajtówKod:
Wypróbuj online!
Poprzedni kod:
Aby dowiedzieć się, czy łańcuch jest obrotowo-symetryczny, wystarczy transliterować za
69
pomocą96
, odwrócić łańcuch i sprawdzić, czy są one równe. Drugą rzeczą, którą musisz wiedzieć, jeśli liczba tylko zawiera cyfry0
,1
,8
,6
i9
. Właśnie to zamierzamy zrobić:„vd•
Część rzeczywiście przekształca ciągvd
od podstawy 190 do podstawy 10 . Możesz to wypróbować tutaj .Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
Python 2, 50 bajtów
Metoda
'01xxxx9x86'.find
przenosi znak cyfry do jego odwróconej liczby, podając dowolną nieprzekraczalną cyfrę-1
. Ta funkcja jest odwzorowana na ciąg odwróconego numeru, tworząc listę cyfr.Jest to konwertowane na ciąg za pomocą
[1::3]
lewy , z tym że jest odwracane przez wykonanie[-2::-3]
(dzięki Dennisowi za to, oszczędzając 4 bajty) i porównywane z pierwotnym ciągiem liczbowym. Wszelkie-1
znaki z nieprzekraczalnych cyfr źle wyrównają konwersję, co spowoduje jej niepowodzenie.56 bajtów:
Sprawdza, czy odwrócony ciąg liczb jest taki sam jak w przypadku zamienników odwróconych. Cyfry, których nie można odwrócić, są zastępowane przez,
'x'
aby zawsze podawać złą odpowiedź.Zastąpienie odbywa się
translate
za pomocą ciągu 256 znaków, zastępując odpowiednie wartości ASCII. Tylko wartości 1048
do57
znaczenia, ale napawa do długości 16, aby łączna długość być 256. Zastanawiam się, czy istnieje krótsza droga.Niektóre inne podejścia (długości 59, 60, 60):
źródło
Rubin,
5446 bajtówNie wiem, czy anonimowe funkcje są dozwolone, czy nie
Zasadniczo taki sam pomysł jak odpowiedź na Python2. Jeśli wejście nie jest liczbą całkowitą, działaj źle (tzn.
aba
Dajetrue
)źródło
JavaScript (ES6), 56 bajtów
źródło
split``
. Zobacz mocniejszy dosłowny układPerl,
2926 bajtówObejmuje +1 dla
-p
Uruchom z wejściem na STDIN:
rotation.pl
:źródło
Galaretka,
1615 bajtówWypróbuj online!
Jak to działa
źródło
Retina,
5749 bajtów8 bajtów zapisanych dzięki @Martin Büttner .
1610880191
->61088019
->108801
->0880
->88
-> (pusty).1
jeśli tylko0
,1
,8
, lub (pusty) zostaje.0
inaczej.Wypróbuj online!
źródło
sh,
4033 bajtówWejście za pomocą argumentu wiersza poleceń, wyjście za pomocą kodu wyjścia. Wygeneruj wszystkie przypadki testowe:
źródło
TSQL, 122 bajty
Jestem nowym golfistą, więc nie jestem pewien, jak liczyć postacie. Licząc tutaj jako 1, ponieważ liczba użyta w tym przypadku to 8
Zwróci 1, gdy odwrócona wartość się zgadza, i nic, gdy się nie zgadza:
Czytelny dla człowieka:
źródło
Siatkówka ,
403833 bajtówWypróbuj online!
Wyjaśnienie
Wykorzystuje to zupełnie inne podejście niż w przypadku drugiej odpowiedzi Retina. Zamiast usuwając wszystkie części symetrycznych, po prostu wykonać transformację odwrócenie ciąg i zamiana
6
i9
s, a następnie porównać dla równości. Aby mieć pewność, że nie pojawią się żadne niesymetryczne cyfry, zamieniamy je również na9
s na pół.Duplikujemy dane wejściowe, dopasowując koniec łańcucha i wstawiając,
;
a następnie całe dane wejściowe.Wykonuje transliterację znaków tylko w drugiej połowie, dopasowując ją do
;.+
. Dwa zestawy transliteracji rozwijają się do:Ponieważ
2-7
oznacza zakres, a zestaw docelowy jest dopełniany ostatnim znakiem, który odpowiada długości zestawu źródłowego. Stąd, swapy scenicznych6
oraz9
i włącza również wszystkich23457
do9
s.Wielokrotnie (
+
) usuń parę identycznych znaków wokół;
. To będzie trwać, dopóki nie pozostaną tylko;
znaki, lub dopóki dwa znaki wokół;
nie będą już identyczne, co oznacza, że ciągi znaków nie są odwrotnością.Sprawdź, czy pierwszym znakiem jest
;
i wydrukuj0
lub1
odpowiednio.źródło
Pyth - 21 bajtów
Pakiet testowy .
źródło
X_zK
wykonuje tę samą pracę, coX_z_KK
. Trzeci parametr jest opcjonalny.Pyth, 17 bajtów
Przetestuj w kompilatorze Pyth .
Jak to działa
źródło
Visual Basic for Applications,
150111 bajtówMożna używać w konsoli lub jako UDF.
Ulepszono, wykorzystując konwersje typu niejawnego i wykonując trzy kroki zamiany zamiast dwóch kroków po każdej stronie równania. Policz obejmuje
Function
iEnd Function
oświadczenia.źródło
GNU sed, 84 bajtów
(w tym +1 za
-r
flagę)Jeśli linia kończy się obrotem początkowego znaku, przytnij oba końce o jeden. Powtarzaj, aż nie będzie dopasowania. Uwzględnij pojedynczy znak symetryczny, a jeśli coś pozostanie, dane wejściowe nie będą symetryczne, a my zwrócimy wartość false; w przeciwnym razie zwróci wartość true.
źródło
C, 82 bajty
Rozszerzony
Wyjaśnienie
Odwracamy cyfry
x
używania arytmetyki modulo-10, zastępując w miarę upływu 6 i 9 ich odbiciami. Zastępujemy rotacyjnie asymetryczne cyfry zerami (pamiętaj, że możemy obsłużyć symetryczne piątki i / lub dwójki, po prostu zmieniając tabelę zastępcząs
). Jeśli nowy numer jest równy oryginałowi (zapisany w „z”), to jest obrotowo symetryczny.Program testowy
Spowoduje to wydrukowanie listy liczb symetrycznych podanych w pytaniu.
źródło
MATL,
252122 bajtówWypróbuj online!
Wyjaśnienie
źródło
Poważnie, 23 bajty
Wypróbuj online!
Jest to zasadniczo port rozwiązania xnor w języku Python 2 .
Wyjaśnienie:
źródło
Kotlin, 69 bajtów
Pobiera liczbę, konwertuje ją na ciąg, obraca, a następnie porównuje z oryginałem jako ciąg dla równości. Nieobrotowe cyfry są po prostu konwertowane na
0
Sprawdź to tutaj!
źródło