Powstaje nieciekawa liczba (której absolutnie nie nadrobiłem tylko dla tego wyzwania):
- Weź dodatnią liczbę całkowitą N
- Utwórz nową liczbę O, dodając cyfry N na końcu N
- Ostatnią nieciekawą liczbą jest O * N
Na przykład dla N = 12:
- O = 1212
- O * N = 1212 * 12
- Ostateczny numer to 14544
Wejście
Dodatnia liczba całkowita N (N> 0) lub odpowiednik twojego języka. Nie musisz łapać niepoprawnych danych wejściowych.
Wydajność
Odpowiednia nieciekawa liczba.
Przypadki testowe
1 -> 11
2 -> 44
3 -> 99
10 -> 10100
174 -> 30306276
Punktacja
Najkrótszy kod w bajtach wygrywa.
Odpowiedzi:
05AB1E , 3 bajty
Wyjaśniono
Wypróbuj online
źródło
str
i*
interpretuje ciąg jako liczbę. Bardzo przydatne :)JavaScript (ES6), 10 bajtów
Musi zostać wywołany z argumentem jako, a
String
nie jakoNumber
.Stosowanie:
-3 bajty dzięki sugestii @Quill .
źródło
_=>(_+_)*+_
_
dowolnego znaku dla zmiennej? (PS -(_+_)
totalnie wygląda jak tyłek)$
też by działałn=>(1+10**-~Math.log10(n))*n*n
(niestety-~
ma wyższy priorytet niż**
) lub 31 w ES6n=>-~`1e${-~Math.log10(n)}`*n*n
. Nawet rekursja zajęła mi 32 bajty:f=(n,m=1)=>n<m?-~m*n*n:f(n,m*10)
Java 8,
29 26 2521 bajtówNiech Bóg błogosławi lambda
c-> Long.decode (c + "" + c) * c;źródło
vim, 11
crcrcrcrcr ...
źródło
<C-r>
można drukować.<C-r>
zwrot powozu?<C-r>
to control plus r. Zwrot karetki wynosi<cr>
.Pyth,
54 bajtówWyjaśnienie:
Sprawdź to tutaj .
źródło
Emacs, 17 bajtów
(*SPACEC-SPACEC-EM-YSPACEC-YC-Y)C-J
Wyjaśnienie
(*
w punkcie (przed liczbą);)
na końcu;Przykład
Kursor reprezentowany przez potok (
|
)|174
(* |174
(* 174|
(* 174 |
(* 174 174174|
(* 174 174174)|
Wynik
źródło
C #,
1923 bajtówBez ciągów 47 bajtów
źródło
(n)=>{int.Parse(""+n+n)*n}
2;
?Python 2.7, 21 bajtów:
Cóż, to musi być najkrótsza odpowiedź w języku Python, jaką kiedykolwiek napisałem w jak najkrótszym czasie. Jest to anonimowa funkcja lambda, którą można wykonać, nadając jej dowolne imię, a następnie wywołując ją jak zwykłą zapakowaną funkcję
print()
. Na przykład, jeśli dane wejściowe są12
, a funkcja została nazwanaH
, będzie to nazwane takprint(H(12))
.Wypróbuj online! (Ideone)
Zauważ, że działa to tylko dla wartości
9223372036854775807
wyższych i równych od każdej wyższej wartości irepr()
umieszczaL
na końcu liczby całkowitej. Dlatego dla wartości większych niż9223372036854775807
ta 24-bajtowa wersja byłaby tą, która działa:Wypróbuj to online! (Ideone)
źródło
Galaretka, 4 bajty
Wypróbuj online
Wyjaśnienie
źródło
;DDx
Ḍ
zajmuje tylko 1 bajt? Zwykle używamy UTF-8, w którym zajmuje 3 (a × przyjmuje 2, ale jest to 1 bajt np. ISO8859-1).C
7070545452 5244Poprzednia wersja (48 bajtów, bez funkcji matematycznych), zapisana 16 bajtów dzięki @LeakyNun, 1 bajt dzięki @FryAmTheEggman, 4 bajty dzięki @TobySpeight:
Zadzwoń
f()
z jednym argumentem, liczbą, i zwróci odpowiedni nieciekawy numer.Program testowy
Wyniki testów:
Wypróbuj online!
źródło
f(n){int b=1;while(a)b*=10,a/=10;return(n+n*b)*n;}
math.h
, ale unikasz go w GCC, gdzielog10()
ipow()
są wbudowane, a kompilator po prostu ostrzega o „niekompatybilnej niejawnej deklaracji wbudowanej funkcji” zamiast zakładać (jak powinno), że oboje wracająint
.a
...Dyalog APL , 7 bajtów
⍕
reprezentacja ciągu⍕,
poprzedzająca reprezentacja ciągu#⍎
make into number (w root namespace)⊢×
pomnóż przez oryginalny numerźródło
J, 7 bajtów
Wyjaśnienie
źródło
Under
działa poprawnie z łączeniem łańcuchów. Cóż za wspaniałe odkrycie dla mnie! Dziękuję Ci.* ,~ &.": n
i nie może być również używany do tworzenia innych czasowników.Siatkówka ,
2720 bajtówRobi się nieco powolny w przypadku dużych nakładów, ponieważ przed ostatnim etapem wynik jest reprezentowany w jedności.
Wypróbuj online! (Pierwszy wiersz włącza pakiet testowy oddzielony od linii).
Wyjaśnienie
Wykorzystam
2
jako przykładowe dane wejściowe (ponieważ jedne reprezentacje stają się nieco niewygodne dla większych danych wejściowych).Etap 1: Zmiana
Dopasowując początek łańcucha do
^
, po prostu przygotowujemy kilka rzeczy.$_
odnosi się do samego łańcucha wejściowego i$*:
oznacza, że wstawiamy tyle dwukropków. Otrzymujemy więc:Etap 2: Zmiana
Teraz dopasowujemy co
:
i ponownie go zastępujemy$_$*:
. Oczywiście ten czas$_
nie jest obliczany na liczbę całkowitą (ale:: 22
w naszym przykładzie), ale$*
po prostu szuka pierwszego miejsca po przecinku w ciągu znaków, więc ocenia to dane wejściowe skonkatenowane z samym sobą (O
w specyfikacji wyzwania).N*O
Skończymy z dwukropkami, a następnieO
:Etap 3: Mecz
Pozostało tylko policzenie
:
s do konwersji z jedności z powrotem na dziesiętne, co dokładnie robi ten etap.źródło
CJam , 8 bajtów
Wypróbuj online!
źródło
r__+i\i*
jest takie samo.r__+si*
, gdzies
„zastosuj tę operację na stosie”), ale nic takiego nie widzęGalaretka,
86 bajtówWypróbuj online!
Wyjaśnienie
źródło
³
.Awk, 13 bajtów
Ustaw linię na 2 z siebie pomnożoną przez siebie
źródło
Brachylog , 7 bajtów
Wyjaśnienie
źródło
Python, 42 bajty
Czyste podejście arytmetyczne, bez zobowiązań!
Ideone to!
źródło
Matlab / Octave, 20 bajtów
Jest to anonimowa funkcja, która przyjmuje dane wejściowe jako ciąg znaków.
Przykładowe zastosowanie:
Lub wypróbuj online z ideone .
Wyjaśnienie
Kod buduje ciąg, łącząc łańcuch wejściowy dwa razy, następnie znak
*
(który ma kod ASCII 42), a następnie ciąg ponownie. Połączony ciąg jest następnie oceniany.źródło
42
znaczy*
*
następnie łańcuch ponownie. Połączony ciąg jest następnie oceniany. Przeredaguję to w odpowiedziMATL , 6 bajtów
Wypróbuj online!
źródło
zsh, 13 bajtów
Pobiera dane wejściowe jako argument wiersza poleceń, wysyła do STDOUT.
Działa to tylko w Zsh, ale tutaj jest 15 bajtów w Bash, używając
echo
zamiast<<<
:źródło
Perl, 11 bajtów
+ flagi
p
il
.(biegnij z
perl -ple '$_*=$_ x2'
)-2 bajty dzięki potoku.
źródło
$_*=$_ x2
-l
$_ x2
wyprodukuje,...\n...\n
który po przeliczeniu na liczbę przez perl kończy się na pierwszym\n
6
.Excel VBA, 35 bajtów
Sub wywoływany z numerem msgbox zwraca odpowiedź
Alternatywny Excel VBA, 42 bajty
Liczba podana we wzorze zwraca odpowiedź.
źródło
Lua, 20 bajtów
Pobiera argument z wiersza poleceń i wysyła dane przez STDOUT
I nie golfił, jak @LeakyNun zapytał w komentarzu :)
źródło
Pyke,
54 bajtówWypróbuj tutaj!
Również 5 bajtów z wejściowymi ciągami znaków
źródło
PHP,
2524 bajtówTagi z krótkim otwieraniem są przydatne w zaskakująco niewielu wyzwaniach golfowych, na szczęście jest to jedno z nich. Niestety pierwszeństwo operatorów jest odwrotnością kolejności, w jakiej należy je wykonać, dlatego potrzeba wielu nawiasów.
edycja: Zrozumiałem, że widząc, jak i tak używam nawiasów, mogę skutecznie pominąć operatora konkatenacji, zmieniając zapisaną kolejność operacji.
źródło
dc,
1110 bajtówI wiedział , że w końcu znajdę zastosowanie do
Z
polecenia!Operacja jest dość prosta - policz cyfry, weź 10 podniesionych do tej mocy i dodaj jedną. Daje to mnożnik, który konkatenuje liczbę ze sobą. Następnie pomnóż.
I / O używa stosu, jak zwykle dla dc.
Pełny program
Oto, czego użyłem do testów:
Dwa dodatkowe polecenia dają nam potoki we / wy.
Testy
Podziękowania należą się Sir Bidenowi XVII (1 bajt).
źródło
A
do10
zapisania bajt. Dobra robota!Świnka, 11 bajtów
Jest to jedno z tych rzadkich wyzwań golfowych, w których osobliwości Mumps mogą być bardzo przydatne. Po pierwsze, wszystkie zmienne są łańcuchami, a wszystkie równania matematyczne są ściśle oceniane od lewej do prawej (jak w: nie PEMDAS), więc 1 + 2 * 4 = 12 w Śwince zamiast = 9, tak jak PEMDAS. Tak więc, (ledwo) nie golfił:
Słowo ostrzeżenia - ponieważ smak Mumpa, którego używam (InterSystems Ensemble), nie odzwierciedla echa powrotu karetki dla standardowego wejścia, numer wejścia i wyjścia będzie wyglądał na skonkatenowany. Aby to poprawić / zwiększyć czytelność, musisz dodać dwa bajty i dodać ręczną CR / LF, a zatem:
Ponieważ jednak nie widziałem tego wymogu w regułach wyzwania, jestem całkiem pewien, że jestem dobry z krótszym kodem. Jeśli się mylę, nie krępuj się, aby LART mnie, a ja zmodyfikuję swoją odpowiedź. :-)
źródło
PowerShell,
25, 18 bajtówDziękuję TessellatingHeckler za przypomnienie mi, jak bardzo PS kocha rurociąg.
Nowe 18 bajtów:
Stare 25 bajtów:
Wyjaśnienie:
Testowanie (zapisz jako nudne.ps1):
Zdecydowanie nie zwycięska odpowiedź, ale niezła zabawa!
źródło
process{$_*"$_$_"}
ma 18 bajtów i pobiera dane wejściowe z „stdin” (tj. potoku), np.174|script.ps1
param($a);$a*"$a$a"
param($n)$n*"$n$n"
;
test.ps1
plik odczytywany z potoku nie ma znaczenia? Czy odczyt skryptu powłoki bash ze standardowego wejścia też się nie liczy?Partia,
272018 bajtówEdycja: Zapisano 7 bajtów dzięki @TessellatingHeckler. Zaoszczędzono kolejne 2 bajty dzięki @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.
źródło
set /a
po pytaniu wyświetla wynik zadania. ->@cmd/c set/a n=%1%1*%1
dla 22 bajtów.@cmd/cset/a%1%1*%1
za 18.cmd/c
Część jest potrzebna, ponieważ narzędzie do wykonywania pliku wsadowego nie jestcmd
samo w sobie.