In một loạt các số không quan tâm!


40

Một con số không thú vị (mà tôi hoàn toàn không tạo ra chỉ cho thử thách này) được tạo ra như thế này:

  1. Lấy số nguyên dương N
  2. Tạo số O mới bằng cách thêm các chữ số của N vào cuối N
  3. Số không quan tâm cuối cùng là O * N

Ví dụ cho N = 12:

  1. O = 1212
  2. O * N = 1212 * 12
  3. Số cuối cùng là 14544

Đầu vào

Số nguyên dương N (N> 0) hoặc tương đương với ngôn ngữ của bạn. Bạn không phải bắt đầu vào không chính xác.

Đầu ra

Số không quan tâm tương ứng.

Các trường hợp thử nghiệm

  1 -> 11
  2 -> 44
  3 -> 99
 10 -> 10100
174 -> 30306276

Chấm điểm

Mã ngắn nhất tính bằng byte thắng.


9
Phải có một mục OEIS có liên quan ...
MKII

1
@Seims Đó là một trò đùa, dựa trên cái tên "không thể tin được"
MKII

7
@MKII xấu của tôi, tôi không nói đùa
Xem

1
Là lấy số làm đối số chuỗi uốn cong quy tắc một chút quá nhiều?
Dom Hastings

1
Đi trước, uốn cong các quy tắc! : P
Xem

Câu trả lời:


38

05AB1E , 3 byte

Ы*

Giải thích

Ð    # triplicate input
 «   # conactenate
  *  # multiply

Dùng thử trực tuyến


2
À, tốt quá! Ninja'd tôi trong vài giây: p.
Ad Nam

2
@Ad Nam Hehe. Trả thù cho lần đó bạn đã làm điều đó với tôi: P
Emigna

1
3 thao tác, 3 byte, tôi không nghĩ bạn có thể làm cho nó ngắn hơn thế.
Lasse Meyer

2
@busukxuan Yep. Concatenate tự động chuyển đổi số thành str*diễn giải chuỗi dưới dạng số. Rất hữu ích :)
Emigna 7/07/2016

2
@busukxuan Vâng, sự kết hợp giữa Pyth và 05AB1E có thể đã thực hiện trong 2 byte :)
Emigna

29

JavaScript (ES6), 10 byte

_=>(_+_)*_

Cần được gọi với đối số là a String, không phải a Number.

Sử dụng:

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

-3 byte nhờ đề xuất của @Quill .


1
Nếu bạn có thể truyền tham số dưới dạng chuỗi, bạn có thể cắt hai byte khỏi giải pháp này:_=>(_+_)*+_
Quill

3
Làm thế nào chính xác để làm việc này? Nếu tôi hiểu chính xác, bạn có đang sử dụng _như một ký tự tùy ý cho một biến không? (PS - (_+_)hoàn toàn trông giống như một cái mông)
charredgrass

@charredgrass $cũng sẽ hoạt động
mèo

11
loại lạm dụng đúc mười một
Downgoat

3
Không có hứng thú, điều tốt nhất tôi có thể làm hoàn toàn về mặt toán học là 30 byte trong ES7 n=>(1+10**-~Math.log10(n))*n*n(đáng buồn là -~có độ ưu tiên cao hơn **) hoặc 31 trong ES6 n=>-~`1e${-~Math.log10(n)}`*n*n. Ngay cả đệ quy cũng lấy cho tôi 32 byte:f=(n,m=1)=>n<m?-~m*n*n:f(n,m*10)
Neil

24

Java 8, 29 26 25 21 byte

Chúa phù hộ lambda

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

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


28
Bạn phải yêu Java; ngay cả với lambdas của Java 8 và một trong những câu trả lời Java ngắn nhất từng có ở đây trên codegolf, nó vẫn vượt xa tất cả các câu trả lời hiện tại khác. xD
Kevin Cruijssen 7/07/2016

3
java là bae, lambda là bae
Seims 7/07/2016

3
@KevinCruijssen Tôi vẫn còn hy vọng, một ngày nào đó java sẽ giành chiến thắng trong cuộc thi
codegolf

1
Sau khi chỉnh sửa, bạn đã vượt qua @MartinEnder với câu trả lời Retina của mình thêm 1 byte! o.Ô
Kevin Cruijssen 7/07/2016

1
@KevinCruijssen nhưng vẫn không đủ để giành chiến thắng hoặc ít nhất là đánh bại trăn :(
user902383

20

vim, 11

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

crcrcrcr ...

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

11 cái gì? byte?
Mất trí

3
@Insane Bytes nếu bạn gọi nó từ dòng lệnh, tổ hợp phím nếu bạn thực hiện trực tiếp từ vim. Tôi thường bỏ qua đơn vị từ các câu trả lời vim của tôi vì nó có thể là một.
Doorknob

v.tryitonline.net/#code=QxI9EiISIioSIgo&input=MTI Để xấu <C-r>là không thể in được.
DJMcMayhem

<C-r>một chiếc xe ngựa trở về?
Thuyền trưởng Man

@CaptainMan Không, <C-r>là kiểm soát cộng r. Vận chuyển trở lại là <cr>.
Doorknob

15

Bình thường, 5 4 byte

*s+`

Giải trình:

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

Kiểm tra nó ở đây .


15

Emacs, 17 byte

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

Giải trình

  • (*SPACEthêm (*tại điểm (trước số);
  • C-SPACEC-EM-Y Chọn và sao chép số;
  • SPACE thêm một ký tự khoảng trắng tại điểm (sau số);
  • C-YC-Y dán hai lần số tại điểm;
  • )thêm )vào cuối;
  • C-J diễn giải dòng dưới dạng biểu thức LISP và in kết quả của nó.

Mẫu mực

Con trỏ đại diện bởi một đường ống ( |)

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

Kết quả

(* 174 174174)
30306276|

3
Xin chào, và chào mừng đến với PPCG! Bài đăng đầu tiên rất hay!
Rɪᴋᴇʀ

13

C #, 19 23 byte

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

Không có chuỗi, 47 byte

n=>{int i=1;while(i<=n)i*=10;return(i+1)*n*n;};

4
Đây là một đoạn mã, không phải là một chương trình hoặc chức năng đầy đủ. Nó sẽ hợp lệ với ví dụ (n)=>{int.Parse(""+n+n)*n}2
con mèo

@ mèo tốt hơn? Tôi có cần dấu vết ;không?
weston

Tôi không biết. Xem thêm Mặc định cho Code GolfMẹo chơi gôn trong C #
cat

12

Python 2.7, 21 byte:

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

Chà, đây phải là câu trả lời Python ngắn nhất tôi từng viết trong khoảng thời gian ngắn nhất từ ​​trước đến nay. Đó là một hàm lambda ẩn danh có thể được thực thi bằng cách đặt tên cho nó bất cứ thứ gì bạn muốn và sau đó gọi nó như một hàm bình thường được bọc trong print(). Chẳng hạn, nếu đầu vào của bạn là 12và hàm được đặt tên H, thì cái này sẽ được gọi như thế print(H(12)).

Dùng thử trực tuyến! (Ý)

Lưu ý rằng điều này chỉ hoạt động cho các giá trị lên và bằng với 9223372036854775807bất kỳ giá trị cao hơn nào và repr()đặt a Lở cuối số nguyên. Do đó, đối với các giá trị lớn hơn 9223372036854775807, phiên bản 24 byte này sẽ là phiên bản hoạt động:

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

Hãy thử trực tuyến này! (Ý)


Tôi vẫn thấy các hoạt động của Phytons String thật kỳ diệu ...
Xem

@Seims theo cách nào?
busukxuan

Chuỗi nhân và cộng. Không thấy điều đó thường xuyên.
Bắt

@Seims Tôi đoán bạn chủ yếu là đối phó với các ngôn ngữ tĩnh?
busukxuan

@busukxuan Gọi cho tôi một noob nếu bạn muốn: ^)
Xem

11

Thạch, 4 byte

;DḌ×

Dùng thử trực tuyến

Giải trình

;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

1
Đó là một khuôn mặt nháy mắt thực sự hạnh phúc với một con dê! ;DDx
mèo

Trong đó mã hóa chỉ mất 1 byte? Thông thường chúng ta sử dụng UTF-8, trong đó phải mất 3 (và × mất 2, nhưng nó là 1 byte trong ví dụ ISO8859-1).
o11c

@ o11c Jelly sử dụng trang mã tùy chỉnh của riêng mình trong đó các ký tự này là một byte mỗi.
một spaghetto

10

C, 70 68 54 53 52 44

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

Phiên bản trước (48 byte, không có chức năng toán học), đã lưu 16 byte nhờ @LeakyNun, 1 byte nhờ @FryAmTheEggman, 4 byte nhờ @TobySpeight:

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

Gọi f()với một đối số, số và nó trả về số không quan tâm tương ứng.

Chương trình kiểm tra

#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;
}

Kết quả kiểm tra:

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

Hãy thử trực tuyến!


f(n){int b=1;while(a)b*=10,a/=10;return(n+n*b)*n;}
Rò rỉ Nun

Điều này không nên hoạt động đúng mà không bao gồm math.h, nhưng bạn thoát khỏi nó trong GCC, nơi log10()pow()được tích hợp sẵn, và trình biên dịch chỉ cảnh báo về "khai báo ngầm định không tương thích của hàm tích hợp" chứ không phải giả sử (như vậy) cả hai trở về int.
Toby Speight

@ Leaky - bạn đã không bỏ bất cứ thứ gì vào a...
Toby Speight

1
Thật tuyệt khi thấy một câu trả lời khác hoàn toàn nằm trong thế giới số học (không thực hiện nối chuỗi). :-)
Toby Speight

1
@Toby - Nối chuỗi trong C không tương thích với chơi gôn. ;-)
owacoder

9

APL Dyalog , 7 byte

⊢×#⍎⍕,⍕

đại diện chuỗi

⍕, đại diện chuỗi ký tự

#⍎ tạo thành số (trong không gian tên gốc)

⊢× nhân với số gốc


1
Những chiến binh TIE bị đắm thật buồn cười!
Luis Mendo


1
Cái nĩa thức tỉnh :-D
Luis Mendo

Tôi khá chắc chắn rằng đó không phải là byte trong bất kỳ mã hóa nào , vì chúng không giống như chữ hoặc rất phổ biến.
o11c

@ o11c Bạn đã kiểm tra liên kết phủ đầu cho từ "byte", viz. meta.codegolf.stackexchange.com/a/9429/43319 .
Adám

9

J, 7 byte

*,~&.":

Giải trình

*,~&.":  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

+1. Tôi thậm chí không thể nghĩ rằng nó Underđang hoạt động đúng với nối chuỗi. Thật là một khám phá tuyệt vời cho tôi! Cảm ơn bạn.
Dan Oak

Đáng buồn thay, tôi nghĩ rằng điều này nên ở trong ngoặc đơn, vì nó là một cái móc không hoạt động nếu được gõ trực tiếp * ,~ &.": nvà cũng không thể được sử dụng để hình thành các động từ khác.
Dan Oak

1
@dahnoak Ở đây tại PPCG, chúng ta chỉ phải xác định những gì cần thiết cho một hàm, và vì vậy, trên đây là tất cả những gì cần thiết để tạo một hàm trong J. Sau đó, để gọi nó bằng cách sử dụng một số đầu vào làm đối số, nó sẽ ở trong dấu ngoặc đơn hoặc được lưu trữ trong một biến.
dặm

À, tôi hiểu rồi, ty.
Dan Oak

9

Võng mạc , 27 20 byte

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

Nhận được một chút chậm cho đầu vào lớn, bởi vì trước giai đoạn cuối, kết quả được thể hiện bằng unary.

Hãy thử trực tuyến! (Dòng đầu tiên cho phép bộ kiểm tra được phân tách bằng nguồn cấp.)

Giải trình

Tôi sẽ sử dụng 2làm đầu vào ví dụ (vì các biểu diễn đơn nhất có một chút khó sử dụng cho các đầu vào lớn hơn).

Giai đoạn 1: Thay thế

^
$_$*: $_

Bằng cách kết hợp đầu chuỗi với ^chúng tôi chỉ cần thêm một số thứ. $_đề cập đến chính chuỗi đầu vào và $*:có nghĩa là chúng ta chèn nhiều dấu hai chấm. Vì vậy, chúng tôi nhận được:

:: 22

Giai đoạn 2: Thay thế

:
$_$*:

Bây giờ chúng tôi phù hợp với tất cả :và một lần nữa thay thế nó với $_$*:. Tất nhiên, lần $_này không đánh giá một số nguyên (nhưng :: 22trong ví dụ của chúng tôi), mà $*chỉ tìm số thập phân đầu tiên trong chuỗi, do đó, điều này đánh giá đầu vào được nối với chính nó ( Otrong đặc tả thách thức). Chúng tôi sẽ kết thúc với N*Odấu hai chấm, theo sau O:

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

Giai đoạn 3: Trận đấu

:

Tất cả những gì còn lại là đếm số :s để chuyển đổi từ unary trở lại thập phân, đó chính xác là những gì giai đoạn này làm.


Ôi, gần như là dài như Java. Vượt xa nó chỉ bằng 2 byte. +1
R. Kap

@ R.Kap Trên thực tế, Java 8 đã vượt qua nó sau khi xóa 3 byte! o.Ô
Kevin Cruijssen 7/07/2016

4
Xin lỗi, Java ....
Martin Ender

9

CJam , 8 byte

ri_`_+i*

Hãy thử trực tuyến!

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

2
Tôi đã đề nghị không chuyển đổi thành sau đó ngay lập tức trở lại chuỗi nhưng cách tiếp cận ngây thơ (tức là chưa bao giờ sử dụng CJam trước đây) r__+i\i*, có cùng độ dài.
Nic Hartley

@QPaysTaxes Ah đẹp đấy. Tôi nhận thấy điều tương tự như bạn: tại sao đầu tiên chuyển đổi nó thành int và sau đó quay lại chuỗi. Tôi cũng không bao giờ sử dụng CJam và không thực sự nhìn đủ gần với tất cả các nhà khai thác có thể , vì vậy tôi không thể tìm thấy giải pháp ngay từ cái nhìn đầu tiên. Cảm ơn vì đã chia sẻ cách tiếp cận của bạn mà không chuyển đổi nó thành chuỗi, mặc dù nó có cùng độ dài byte.
Kevin Cruijssen 7/07/2016

Nếu có một cách để áp dụng một hoạt động cho toàn bộ ngăn xếp trong hai byte, thì đó sẽ là một byte ngắn hơn (đại loại như r__+si*, s"áp dụng thao tác này trên ngăn xếp"), nhưng tôi không thấy bất cứ điều gì như vậy
Nic Hartley

8

Thạch, 8 6 byte

ŒṘẋ2v×

Hãy thử trực tuyến!

Giải trình

ŒṘẋ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

1
Tôi không nghĩ bạn cần một trong những thứ ³đó.
Martin Ender




7

Matlab / Octave, 20 byte

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

Đây là một hàm ẩn danh lấy đầu vào là một chuỗi.

Ví dụ sử dụng:

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

Hoặc thử trực tuyến với ideone .

Giải trình

Mã xây dựng một chuỗi bằng cách nối chuỗi đầu vào hai lần, sau đó là ký tự *(có mã ASCII 42), sau đó chuỗi lại. Chuỗi nối sau đó được đánh giá.


42nghĩa là gì?
Rò rỉ Nun

4
@LeakyNun Đó là câu trả lời cho câu hỏi cuối cùng về sự sống, vũ trụ và mọi thứ " . Ngoài ra, nó còn là mã ASCII cho*
Luis Mendo

À. Tôi đã tìm kiếm một cái gì đó như chức năng thứ 42.
Rò rỉ Nun

Mã chỉ đơn giản là xây dựng một chuỗi bằng cách nối chuỗi đầu vào hai lần, sau đó *, lại chuỗi. Chuỗi nối sau đó được đánh giá. Tôi sẽ chỉnh sửa câu trả lời
Luis Mendo


6

zsh, 13 byte

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

Lấy đầu vào làm đối số dòng lệnh, xuất ra STDOUT.

Điều này chỉ hoạt động trong zsh, nhưng đây là 15 byte trong Bash sử dụng echothay vì <<<:

echo $[$1$1*$1]

6

Perl, 11 byte

$_*=$_ x2

+ plcờ.

(chạy với perl -ple '$_*=$_ x2')

-2 byte nhờ đường ống.


Lưu hai byte:$_*=$_ x2
ống

Tôi không nghĩ bạn cần-l
Brad Gilbert b2gills

@ BradGilbertb2gills Có Tôi cần nó bởi vì không có nó, $_ x2sẽ tạo ra ...\n...\ncái mà khi được chuyển đổi thành số bằng perl kết thúc vào lúc đầu tiên\n
Dada

Tôi đã thử nghiệm nó với cả Perl 5 và 6, và không nhận thấy rằng tôi đã quên xóa 6.
Brad Gilbert b2gills

6

VBA Excel, 35 byte

Sub được gọi với số, hộp thư trả lời

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

VBA Excel thay thế, 42 byte

Số được đưa ra trong công thức, trả lời câu trả lời.

Function B(a)
B = (a & a) * a
End Function

Hãy suy nghĩ về một MsgBox và một Sub. Nó sẽ giúp bạn tiết kiệm được 13 Byte, nếu tôi đếm chính xác
GER_Moki

Tôi sẽ cần một số hình thức của hộp đầu vào để có được giá trị, không?
tjb1

Hãy thử Sub B (a) MsgBox (a & a) * a Sub Sub
GER_Moki 7/07/2016

Điều đó đòi hỏi một phụ khác để vượt qua giá trị, tôi không chắc điều đó được cho phép trong golf.
tjb1

Hàm cũng phải được gọi;)
GER_Moki

6

Lua, 20 byte

Tham gia vào một đối số dòng lệnh và xuất ra thông qua STDOUT

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

Và vô dụng như @LeakyNun đã hỏi trong bình luận :)

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

Đó có thể là một minh chứng tốt đẹp cho sự ép buộc kiểu ... nếu bạn thêm lời giải thích vào.
Leaky Nun


5

PHP, 25 24 byte

Thẻ mở ngắn rất hữu ích cho một vài thử thách đáng ngạc nhiên khi chơi golf, may mắn thay, đây là một trong số đó. Thật không may, quyền ưu tiên của nhà điều hành là ngược lại với thứ tự bạn cần thực hiện chúng trong rất nhiều dấu ngoặc là cần thiết.

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

chỉnh sửa: Tôi nhận ra rằng dù sao tôi cũng đang sử dụng dấu ngoặc, tôi có thể bỏ qua toán tử ghép một cách hiệu quả bằng cách thay đổi thứ tự bằng văn bản của các thao tác xung quanh.


5

dc, 11 10 byte

ddZAr^1+**

Tôi biết rằng cuối cùng tôi sẽ tìm thấy một sử dụng cho Zlệnh!

Hoạt động khá đơn giản - đếm các chữ số, lấy 10 chữ số tăng lên và thêm một. Điều này cung cấp một số nhân kết hợp số với chính nó. Sau đó chỉ cần nhân lên.

I / O sử dụng stack, như thường lệ cho dc.

Chương trình đầy đủ

Đây là những gì tôi đã sử dụng cho các bài kiểm tra:

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

Hai lệnh bổ sung cung cấp cho chúng tôi đường ống I / O.

Xét nghiệm

$ 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

Cảm ơn là do Sir Biden XVII (1 byte).


Bạn có thể thay thế Acho 10lưu một byte. Làm tốt!
Joe

4

Quai bị, 11 byte

R I W I_I*I

Đây là một trong những thử thách golf hiếm hoi mà các đặc điểm riêng của Quai bị có thể rất hữu ích. Đầu tiên, tất cả các biến là các chuỗi và tất cả các phương trình toán học được đánh giá nghiêm ngặt từ trái sang phải (như trong: không phải PEMDAS), vì vậy 1 + 2 * 4 = 12 trong Quai bị thay vì = 9 theo cách PEMDAS sẽ làm. Vì vậy, (hầu như không) vô dụng:

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

Lưu ý - vì hương vị của Quai bị mà tôi đang sử dụng (Bộ đồng bộ hệ thống) không lặp lại lợi nhuận vận chuyển cho stdin, số đầu vào và đầu ra sẽ xuất hiện nối liền. Để khắc phục điều đó / tăng khả năng đọc, bạn cần thêm hai byte và thêm CR / LF thủ công, do đó:

R I W !,I_I*I

Tuy nhiên, vì tôi không thấy yêu cầu đó trong các quy tắc của thử thách, tôi khá chắc chắn rằng tôi tốt với mã ngắn hơn. Nếu tôi nhầm, xin vui lòng LART tôi và tôi sẽ sửa đổi câu trả lời của tôi. :-)


4

PowerShell, 25 , 18 byte

Cảm ơn bạn TessellatingHeckler đã nhắc nhở tôi rằng PS yêu thích đường ống này như thế nào.

18 byte mới:

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

25 byte cũ:

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

Giải trình:

# 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

Kiểm tra (lưu dưới dạng nhàm chán.ps1):

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

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

Chắc chắn không phải là câu trả lời chiến thắng, nhưng vui vẻ bất kể!


Nếu bạn đặt các biến theo cách khác, chuỗi int * sẽ ngầm định chuỗi thành một int và bạn có thể lưu 5 byte truyền. process{$_*"$_$_"}là 18 byte, và có đầu vào từ "stdin" (tức là các đường ống dẫn), ví dụ:174|script.ps1
TessellatingHeckler

Hmmm ... Điểm thú vị. Tôi cũng có thể chuyển đổi chúng bằng cấu trúc tương tự của mình và đạt được kết quả tương tự:param($a);$a*"$a$a"
ThePoShWolf

Err, tôi lấy lại, của tôi là một byte dài hơn!
ThePoShWolf

@TessellatingHeckler Cẩn thận với câu trả lời đó, vì môi trường REPL của PowerShell không đủ điều kiện cho chương trình hoặc chức năng mặc định . Một cái gì đó giống như param($n)$n*"$n$n"(những gì Darth có, không có ;) có cùng độ dài và không phải là REPL.
admBorkBork

@TimmyD tại sao không phải là một test.ps1tệp đọc từ số lượng đường ống? Liệu một tập lệnh bash shell đọc từ stdin cũng không được tính?
TessellatingHeckler

4

Mẻ, 27 20 18 byte

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

Chỉnh sửa: Đã lưu 7 byte nhờ @TessellatingHeckler. Đã lưu thêm 2 byte nhờ @ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ.


set /atại dấu nhắc xuất kết quả của bài tập. -> @cmd/c set/a n=%1%1*%1cho 22 byte.
TessellatingHeckler

@TessellatingHeckler Tại sao phải phân công nếu bạn xuất ra?
Neil

@TessellatingHeckler Huh, tôi đã thực hiện thủ thuật này sáu tuần trước và tôi đã quên nó rồi ..
Neil

@cmd/cset/a%1%1*%1cho 18.
Erik the Outgolfer

1
@Neil Không, nhưng tôi đã thử nghiệm nó (trên Windows 10!) Phần cmd/cnày là cần thiết vì công cụ thực thi tệp bó không phảicmdchính nó.
Erik the Outgolfer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.