Wydrukuj kilka nieciekawych liczb!

40

Powstaje nieciekawa liczba (której absolutnie nie nadrobiłem tylko dla tego wyzwania):

  1. Weź dodatnią liczbę całkowitą N
  2. Utwórz nową liczbę O, dodając cyfry N na końcu N
  3. Ostatnią nieciekawą liczbą jest O * N

Na przykład dla N = 12:

  1. O = 1212
  2. O * N = 1212 * 12
  3. 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.

Seims
źródło
9
Musi istnieć odpowiedni wpis OEIS ...
MKII
1
@Seims To był żart oparty na „nieciekawej” nazwie
MKII
7
@MKII mój zły, nie mówię żartu
Seims
1
Czy potraktowanie liczby jako argumentu łańcuchowego wygina reguły trochę za bardzo?
Dom Hastings,
1
Śmiało, naginaj zasady! : P
Wydaje się

Odpowiedzi:

38

05AB1E , 3 bajty

Ы*

Wyjaśniono

Ð    # triplicate input
 «   # conactenate
  *  # multiply

Wypróbuj online

Emigna
źródło
2
Ahh, miło! Ninja'd mnie sekundami: str.
Adnan
2
@Adnan Hehe. Zemsta za ten czas, który mi zrobiłeś: P
Emigna,
1
3 operacje, 3 bajty, nie sądzę, żeby można było zrobić to krócej.
Lasse Meyer,
2
@busukxuan Yep. Concatenate automatycznie konwertuje liczbę na stri *interpretuje ciąg jako liczbę. Bardzo przydatne :)
Emigna,
2
@busukxuan Tak, połączenie Pyth i 05AB1E mogło to zrobić w 2 bajtach :)
Emigna
29

JavaScript (ES6), 10 bajtów

_=>(_+_)*_

Musi zostać wywołany z argumentem jako, a Stringnie jako Number.

Stosowanie:

(_=>(_+_)*_)('3')
99

-3 bajty dzięki sugestii @Quill .

Dom Hastings
źródło
1
Jeśli możesz przekazać parametr jako ciąg, możesz odciąć dwa bajty od tego rozwiązania:_=>(_+_)*+_
Quill
3
Jak dokładnie to działa? Jeśli dobrze rozumiem, czy używasz _dowolnego znaku dla zmiennej? (PS - (_+_)totalnie wygląda jak tyłek)
charredgrass
@charredgrass $też by działał
kot
11
nadużycie typu casting jedenaście
Downgoat
3
Zainteresowanie najlepszym, co mogłem zrobić czysto matematycznie, było 30 bajtów w ES7 n=>(1+10**-~Math.log10(n))*n*n(niestety -~ma wyższy priorytet niż **) lub 31 w ES6 n=>-~`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)
Neil
24

Java 8, 29 26 25 21 bajtów

Niech Bóg błogosławi lambda

c->new Long(c+""+c)*c

c-> Long.decode (c + "" + c) * c;

użytkownik902383
źródło
28
Musisz pokochać Javę; nawet z lambdami w Javie 8 i jedną z najkrótszych odpowiedzi Java na kodegolfie, wciąż jest on przerośnięty przez wszystkie inne aktualne odpowiedzi. xD
Kevin Cruijssen
3
java is bae, lambda is bae
Seims 7.07.16
3
@KevinCruijssen wciąż mam nadzieję, że pewnego dnia java wygra konkurs
codegolf
1
Po dokonaniu edycji wygraliście @MartinEnder z jego odpowiedzią Retina o 1 bajt! o.Ô
Kevin Cruijssen
1
@KevinCruijssen, ale wciąż za mało, aby wygrać lub przynajmniej pokonać Pythona :(
user902383
20

vim, 11

C<C-r>=<C-r>"<C-r>"*<C-r>"<cr>

crcrcrcrcr ...

C       change (delete and enter insert mode) until the end of the line
<C-r>=  insert an expression via the special "expression register"
<C-r>"  insert the contents of the default register (what we just C'd)
<C-r>"  ... again
*       multiplied by
<C-r>"  the input (again)
<cr>    insert the result of this expression
Klamka
źródło
11 co? bajty?
Szalony
3
@Insane Bytes, jeśli wywołujesz go z wiersza poleceń, naciśnięcia klawiszy, jeśli robisz to bezpośrednio z vima. Zwykle pomijam jednostkę w moich odpowiedziach vima, ponieważ może to być jedna z nich.
Klamka
v.tryitonline.net/#code=QxI9EiISIioSIgo&input=MTI Szkoda, że ​​nie <C-r>można drukować.
DJMcMayhem
Czy <C-r>zwrot powozu?
Captain Man
@CaptainMan No, <C-r>to control plus r. Zwrot karetki wynosi <cr>.
Klamka
15

Pyth, 5 4 bajtów

*s+`

Wyjaśnienie:

    Q    input
   `     representation, basically str(Q)
  +  Q   add Q to its own string form
 s       parse int
*     Q  multiply by input
         print

Sprawdź to tutaj .

busukxuan
źródło
15

Emacs, 17 bajtów

(*SPACEC-SPACEC-EM-YSPACEC-YC-Y)C-J

Wyjaśnienie

  • (*SPACEdodaje (*w punkcie (przed liczbą);
  • C-SPACEC-EM-Y Wybierz i skopiuj numer;
  • SPACE dodaje znak spacji w punkcie (po numerze);
  • C-YC-Y wkleja dwa razy liczbę w punkcie;
  • )dodaje )na końcu;
  • C-J interpretuje linię jako wyrażenie LISP i wypisuje jej wynik.

Przykład

Kursor reprezentowany przez potok ( |)

  • |174
  • (*SPACE (* |174
  • C-SPACEC-EM-Y (* 174|
  • SPACE (* 174 |
  • C-YC-Y (* 174 174174|
  • ) (* 174 174174)|
  • C-J

Wynik

(* 174 174174)
30306276|
YSC
źródło
3
Cześć, witamy w PPCG! Miły pierwszy post!
Rɪᴋᴇʀ
13

C #, 19 23 bajtów

n=>int.Parse(""+n+n)*n;

Bez ciągów 47 bajtów

n=>{int i=1;while(i<=n)i*=10;return(i+1)*n*n;};
weston
źródło
4
To jest fragment kodu, a nie pełny program lub funkcja. Byłoby ważne z np. (n)=>{int.Parse(""+n+n)*n}2
kotem
@cat lepiej? czy potrzebuję trailing ;?
weston
12

Python 2.7, 21 bajtów:

lambda f:int(`f`*2)*f

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 nazwana H, będzie to nazwane tak print(H(12)).

Wypróbuj online! (Ideone)

Zauważ, że działa to tylko dla wartości 9223372036854775807wyższych i równych od każdej wyższej wartości i repr()umieszcza Lna końcu liczby całkowitej. Dlatego dla wartości większych niż 9223372036854775807ta 24-bajtowa wersja byłaby tą, która działa:

lambda f:int(str(f)*2)*f

Wypróbuj to online! (Ideone)

R. Kap
źródło
Nadal uważam, że operacje Phytons String są magiczne ...
Seims
@ Wydaje się, w jaki sposób?
busukxuan
Mnożenie i dodawanie ciągów. Nie widziałem tak często.
Wydaje się
@ Wydaje się, że wtedy masz do czynienia głównie z językami statycznymi?
busukxuan
@busukxuan Nazywaj mnie noob, jeśli chcesz: ^)
Seims
11

Galaretka, 4 bajty

;DḌ×

Wypróbuj online

Wyjaśnienie

;DḌ×    Main link. argument : N

 D      Decimal; Yield the digits of N
;       Concatenate N and its digits
  Ḍ     Convert to integer; We get O
   ×    Multiply O and N
Essari
źródło
1
To naprawdę szczęśliwa mrugająca twarz z kozią bródką! ;DDx
kot
W którym kodowaniu 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).
o11c
@ o11c Jelly używa własnej niestandardowej strony kodowej, na której znaki te są jednobajtowe.
spaghetto
10

C 70 70 54 54 52 52 44

f(n){return(pow(10,(int)log10(n)+1)*n+n)*n;}

Poprzednia wersja (48 bajtów, bez funkcji matematycznych), zapisana 16 bajtów dzięki @LeakyNun, 1 bajt dzięki @FryAmTheEggman, 4 bajty dzięki @TobySpeight:

f(n,d,i){for(i=d=n;d;d/=10)i*=10;return(i+n)*n;}

Zadzwoń f()z jednym argumentem, liczbą, i zwróci odpowiedni nieciekawy numer.

Program testowy

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    while (*++argv) {
        int n = atoi(*argv);
        printf("%d -> %d\n", n, f(n));
    }
    return 0;
}

Wyniki testów:

$ ./84712 1 2 3 4 10 174
1 -> 11
2 -> 44
3 -> 99
4 -> 176
10 -> 10100
174 -> 30306276

Wypróbuj online!

owacoder
źródło
f(n){int b=1;while(a)b*=10,a/=10;return(n+n*b)*n;}
Leaky Nun
Nie powinno to działać poprawnie bez uwzględnienia math.h, ale unikasz go w GCC, gdzie log10()i pow()są wbudowane, a kompilator po prostu ostrzega o „niekompatybilnej niejawnej deklaracji wbudowanej funkcji” zamiast zakładać (jak powinno), że oboje wracają int.
Toby Speight
@Leaky - nie włożyłeś nic w a...
Toby Speight
1
Miło jest widzieć kolejną odpowiedź, która pozostaje całkowicie w świecie arytmetycznym (bez robienia połączeń łańcuchowych). :-)
Toby Speight
1
@Toby - Łączenie łańcuchów w C jest niezgodne z golfem. ;-)
owacoder
9

Dyalog APL , 7 bajtów

⊢×#⍎⍕,⍕

reprezentacja ciągu

⍕, poprzedzająca reprezentacja ciągu

#⍎ make into number (w root namespace)

⊢× pomnóż przez oryginalny numer

Adám
źródło
1
Te zniszczone myśliwce TIE są zabawne!
Luis Mendo,
1
Widelec się budzi :-D
Luis Mendo
Jestem prawie pewien, że nie są to bajty w żadnym kodowaniu, ponieważ nie są one podobne do liter lub bardzo częste.
o11c
@ o11c Czy sprawdziłeś link zapobiegawczy dla słowa „bajty”, mianowicie. meta.codegolf.stackexchange.com/a/9429/43319 .
Adám,
9

J, 7 bajtów

*,~&.":

Wyjaśnienie

*,~&.":  Input: n
     ":  Format n as a string
 ,~&.    Reflect and join the string to make "nn"
         and parse the string to get a number
*        Multiply that number by n
mile
źródło
+1. Nie mogłem nawet pomyśleć, że Underdziała poprawnie z łączeniem łańcuchów. Cóż za wspaniałe odkrycie dla mnie! Dziękuję Ci.
Dan Oak
Niestety, myślę, że powinno to być w nawiasie, ponieważ jest to hak, który nie działa, jeśli jest wpisywany bezpośrednio * ,~ &.": ni nie może być również używany do tworzenia innych czasowników.
Dan Oak
1
@dahnoak Tutaj, w PPCG, musimy jedynie określić, co jest potrzebne dla funkcji, więc powyższe jest wszystko, co jest konieczne, aby utworzyć funkcję w J. Następnie, aby wywołać ją za pomocą pewnych danych wejściowych jako argumentu, będzie albo w nawiasach lub przechowywane w zmiennej.
mile
Ach, mam to.
Dan Oak
9

Siatkówka , 27 20 bajtów

^
$_$*: $_
:
$_$*:
:

Robi 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 2jako 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:

:: 22

Etap 2: Zmiana

:
$_$*:

Teraz dopasowujemy co :i ponownie go zastępujemy $_$*:. Oczywiście ten czas $_nie jest obliczany na liczbę całkowitą (ale :: 22w 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ą ( Ow specyfikacji wyzwania). N*OSkończymy z dwukropkami, a następnie O:

:::::::::::::::::::::::::::::::::::::::::::: 22

Etap 3: Mecz

:

Pozostało tylko policzenie :s do konwersji z jedności z powrotem na dziesiętne, co dokładnie robi ten etap.

Martin Ender
źródło
Och, tak blisko bycia tak długim jak Java. Przegapił go o zaledwie 2 bajty. +1
R.Kap
@ R.Kap Właściwie Java 8 przerobił go po usunięciu 3 bajtów! o.Ô
Kevin Cruijssen
4
Przepraszamy, Java ....
Martin Ender
9

CJam , 8 bajtów

ri_`_+i*

Wypróbuj online!

r     e# Read input
i     e# Convert to integer
_     e# Duplicate
`     e# Convert to string
_     e# Duplicate
+     e# Concatenate
i     e# Convert to integer
*     e# Multiply. Implicitly display
Luis Mendo
źródło
2
Właśnie miałem zasugerować, aby nie konwertować do, a następnie natychmiast wracać do łańcucha, ale naiwne podejście (tj. Nigdy wcześniej nie korzystałem z CJam) r__+i\i*jest takie samo.
Nic Hartley,
@QPaysTaxes Ah nice. Zauważyłem to samo, co Ty: dlaczego najpierw przekonwertuj go na int, a następnie ponownie na string. Nigdy też nie korzystałem z CJam i nie wyglądałem wystarczająco blisko wszystkich możliwych operatorów , więc nie byłem w stanie znaleźć rozwiązania na pierwszy rzut oka. Dziękujemy za podzielenie się swoim podejściem bez konwertowania go z powrotem na ciąg, nawet jeśli ma on tę samą długość bajtów.
Kevin Cruijssen
Gdyby istniał sposób zastosowania operacji na całym stosie w dwóch bajtach, byłby to bajt krótszy (coś w rodzaju r__+si*, gdzie s„zastosuj tę operację na stosie”), ale nic takiego nie widzę
Nic Hartley,
8

Galaretka, 8 6 bajtów

ŒṘẋ2v×

Wypróbuj online!

Wyjaśnienie

ŒṘẋ2v× - Main link. Left argument: the number to convert

     × - Multiply
    v  - an evaluation of the left argument
ŒṘ     - converted to string
  ẋ    - multiplied by
   2   - two and the left argument
użytkownik48538
źródło
1
Nie sądzę, żebyś potrzebował któregoś z nich ³.
Martin Ender
8

Awk, 13 bajtów

$0=($0$0)*$0

Ustaw linię na 2 z siebie pomnożoną przez siebie

Użytkownik112638726
źródło
7

Brachylog , 7 bajtów

:?c:?*.

Wyjaśnienie

:?c      Concatenate Input to itself
   :?*.  Output is that concatenation times Input
Fatalizować
źródło
7

Python, 42 bajty

Czyste podejście arytmetyczne, bez zobowiązań!

f=lambda n,m=1:m<=n and f(n,m*10)or-~m*n*n

Ideone to!

Leaky Nun
źródło
7

Matlab / Octave, 20 bajtów

@(x)eval([x x 42 x])

Jest to anonimowa funkcja, która przyjmuje dane wejściowe jako ciąg znaków.

Przykładowe zastosowanie:

>> f = @(x)eval([x x 42 x])
f = 
    @(x)eval([x,x,42,x])
>> f('12')
ans =
       14544

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.

Luis Mendo
źródło
Co 42znaczy
Leaky Nun
4
@LeakyNun To odpowiedź na ostateczne pytanie o życie, wszechświat i wszystko " . Zdarza się, że jest to kod ASCII dla*
Luisa Mendo
Ach Szukałem czegoś takiego jak 42 funkcja.
Leaky Nun
Kod po prostu buduje łańcuch, łącząc łańcuch wejściowy dwa razy, a *następnie łańcuch ponownie. Połączony ciąg jest następnie oceniany. Przeredaguję to w odpowiedzi
Luis Mendo
6

MATL , 6 bajtów

tVthU*

Wypróbuj online!

tV     % Input number implicitly. Duplicate and convert to string
th     % Duplicate and concatenate the two equal strings
U      % Convert to number
*      % Multiply
Luis Mendo
źródło
6

zsh, 13 bajtów

<<<$[$1$1*$1]

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 echozamiast <<<:

echo $[$1$1*$1]
Klamka
źródło
6

Perl, 11 bajtów

$_*=$_ x2

+ flagi pi l.

(biegnij z perl -ple '$_*=$_ x2')

-2 bajty dzięki potoku.

Dada
źródło
Zaoszczędź dwa bajty:$_*=$_ x2
potok
Nie sądzę, że potrzebujesz-l
Brad Gilbert b2gills,
@ BradGilbertb2gills Tak, potrzebuję go, ponieważ bez niego $_ x2wyprodukuje, ...\n...\nktóry po przeliczeniu na liczbę przez perl kończy się na pierwszym\n
Dada
Testowałem to z Perlem 5 i 6 i nie zauważyłem, że zapomniałem usunąć 6.
Brad Gilbert b2gills 7.07.16
6

Excel VBA, 35 bajtów

Sub wywoływany z numerem msgbox zwraca odpowiedź

Sub B(a)
MsgBox (a & a) * a
End Sub

Alternatywny Excel VBA, 42 bajty

Liczba podana we wzorze zwraca odpowiedź.

Function B(a)
B = (a & a) * a
End Function
tjb1
źródło
Pomyśl o MsgBox i Sub. Zaoszczędzi ci 13 bajtów, jeśli poprawnie liczę
GER_Moki,
Potrzebuję jakiejś formy pola wprowadzania, aby uzyskać wartość, nie?
tjb1
Wypróbuj Sub B (a) MsgBox (a & a) * a End Sub
GER_Moki
Wymaga to kolejnego sub, aby przekazać wartość, nie jestem pewien, czy jest to dozwolone w golfie.
tjb1
Trzeba też
wywołać funkcję
6

Lua, 20 bajtów

Pobiera argument z wiersza poleceń i wysyła dane przez STDOUT

a=...print((a..a)*a)

I nie golfił, jak @LeakyNun zapytał w komentarzu :)

a=...       -- alias for the first argument
print(
     (a..a) -- concatenate a with itself, equivalent to a:rep(2)
     *a)    -- multiply the resulting number by a
Katenkyo
źródło
To może być niezła demonstracja przymusu typu ... jeśli dodasz wyjaśnienie w.
Leaky Nun
5

Pyke, 5 4 bajtów

`+b*

Wypróbuj tutaj!

`    -    str(input)
 +   -   ^+input  (convert to string implicitly)
  b  -  int(^)
   * - ^*input

Również 5 bajtów z wejściowymi ciągami znaków

+bRb*
+]mbB
niebieski
źródło
5

PHP, 25 24 bajtów

Tagi 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.

<?=($a=$argv[1])*"$a$a";

edycja: Zrozumiałem, że widząc, jak i tak używam nawiasów, mogę skutecznie pominąć operatora konkatenacji, zmieniając zapisaną kolejność operacji.

użytkownik55641
źródło
5

dc, 11 10 bajtów

ddZAr^1+**

I wiedział , że w końcu znajdę zastosowanie do Zpolecenia!

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:

#!/usr/bin/dc
?
ddZAr^1+**
p

Dwa dodatkowe polecenia dają nam potoki we / wy.

Testy

$ for i in 1 2 3 10 174; do printf '%d -> ' $i; ./84712.dc <<<$i; done
1 -> 11
2 -> 44
3 -> 99
10 -> 10100
174 -> 30306276

Podziękowania należą się Sir Bidenowi XVII (1 bajt).

Toby Speight
źródło
Można wstawić Ado 10zapisania bajt. Dobra robota!
Joe
4

Świnka, 11 bajtów

R I W I_I*I

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ł:

R I ;     Read from stdin to variable I
W I_I*I ; Write out I concatenated with I, then multiplied by I.

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:

R I W !,I_I*I

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ź. :-)

zmerch
źródło
4

PowerShell, 25 , 18 bajtów

Dziękuję TessellatingHeckler za przypomnienie mi, jak bardzo PS kocha rurociąg.

Nowe 18 bajtów:

process{$_*"$_$_"}

Stare 25 bajtów:

param($a);[int]"$a$a"*$a

Wyjaśnienie:

# new
process{$_*"$_$_"}
process{         } # runs code block once for each passed item
        $_*        # multiple the first parameter
           "$_$_"  # concatenate as a string for ease
                   # in this case, the order does the typecasting for us
# old
param($a);[int]"$a$a"*$a
param($a)                 # assigns the first passed parameter to variable $a
         ;                # line terminator
          [int]           # type cast string "$a$a" to int32
               "$a$a"     # convert $a$a to string for easy concatenation
                     *$a  # multiply by $a

Testowanie (zapisz jako nudne.ps1):

# new
12 | .\boring.ps1
14544
174 | .\boring.ps1
30306276

# old
.\boring.ps1 12
14544
.\boring.ps1 174
30306276

Zdecydowanie nie zwycięska odpowiedź, ale niezła zabawa!

ThePoShWolf
źródło
Jeśli wstawisz zmienne na odwrót, ciąg int * niejawnie rzuci ciąg na int i możesz zaoszczędzić 5 bajtów rzutowania. process{$_*"$_$_"}ma 18 bajtów i pobiera dane wejściowe z „stdin” (tj. potoku), np.174|script.ps1
TessellatingHeckler
Hmmm ... Interesujący punkt. Mogę je również zamienić, używając tej samej struktury i osiągnąć ten sam wynik:param($a);$a*"$a$a"
ThePoShWolf
Eee, cofam to, mój jest o jeden bajt dłużej!
ThePoShWolf
@TessellatingHeckler Ostrożnie z tą odpowiedzią, ponieważ środowisko REPL programu PowerShell nie kwalifikuje się do domyślnego programu lub funkcji . Coś w rodzaju (co Darth miał bez ) ma taką samą długość i nie jest REPL. param($n)$n*"$n$n";
AdmBorkBork
@TimmyD dlaczego test.ps1plik odczytywany z potoku nie ma znaczenia? Czy odczyt skryptu powłoki bash ze standardowego wejścia też się nie liczy?
TessellatingHeckler
4

Partia, 27 20 18 bajtów

@cmd/cset/a%1%1*%1

Edycja: Zapisano 7 bajtów dzięki @TessellatingHeckler. Zaoszczędzono kolejne 2 bajty dzięki @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.

Neil
źródło
set /apo pytaniu wyświetla wynik zadania. -> @cmd/c set/a n=%1%1*%1dla 22 bajtów.
TessellatingHeckler
@TessellatingHeckler Po co zawracać sobie głowy przypisywaniem, jeśli produkujesz?
Neil
@TessellatingHeckler Huh, zrobiłem już tę sztuczkę sam sześć tygodni temu i już o tym zapomniałem ...
Neil
@cmd/cset/a%1%1*%1za 18.
Erik the Outgolfer
1
@Neil Nope, ale przetestowałem go (w systemie Windows 10!) cmd/cCzęść jest potrzebna, ponieważ narzędzie do wykonywania pliku wsadowego nie jest cmdsamo w sobie.
Erik the Outgolfer