Chữ A không có A


69

Nhiệm vụ của bạn là hiển thị chữ "A" một mình, không có bất cứ điều gì khác, ngoại trừ bất kỳ hình thức dòng mới nào nếu bạn không thể tránh chúng, làm như vậy trong một chương trình và / hoặc đoạn trích. Mã trả về (thay vì in) được cho phép.

Cả hai phiên bản chữ thường và chữ hoa của chữ "A" đều được chấp nhận (nghĩa là unicode U + 0061 hoặc unicode U + 0041. Các mã hóa ký tự khác không được phép Unicode, nhưng dù sao đi nữa, đầu ra kết quả của mã của bạn phải là chữ cái Latinh "A", và không phải bất kỳ cái nhìn hay đồng âm nào)

Bạn không được sử dụng bất kỳ ký tự nào dưới đây trong mã của mình, bất kể mã hóa ký tự bạn chọn:

  • " A ", cho dù là chữ hoa hay chữ thường.

  • " U ", cho dù là chữ thường hay chữ hoa.

  • X , dù là chữ hoa hay chữ thường.

  • +

  • &

  • #

  • 0

  • 1

  • 4

  • 5

  • 6

  • 7

  • 9

Gian lận, sơ hở, vv, không được phép.

Vì đây là , giải pháp ngắn nhất, tính bằng byte, tuân theo tất cả các quy tắc, là người chiến thắng.


Kiểm tra hiệu lực

Đoạn mã Stack này kiểm tra để đảm bảo mã của bạn không sử dụng các ký tự bị hạn chế. Nó có thể không hoạt động đúng cho một số mã hóa ký tự.

var t = prompt("Input your code.");

if (/[AaUuXx+&#0145679]/.test(t)) {
  alert("Contains a disallowed character!");
} else {
  alert("No disallowed characters");
}

Đoạn trích Stack này đảm bảo rằng bạn không có ký tự không được phép cũng có sẵn trên JSFiddle .

Bảng xếp hạng


7
@ColdGolf Bạn dường như đang nói "có" với các chức năng, nhưng các chức năng không hiển thị, chúng thường quay trở lại.
xnor

2
Là kết thúc với một biến chỉ chứa ađủ tốt?
TonMedel

1
Ý của tôi không phải như vậy. Mã được cho là thực hiện một phép gán biến sẽ không chứa bất kỳ ký tự bị cấm nào. Tôi chỉ đang cố gắng hiểu những gì được bao phủ bởi "hiển thị bằng các phương tiện khác ngoài in ấn". Nếu "trả về từ một hàm" là OK, vậy còn "gán cho một biến" thì sao?
TonMedel

1
Tại sao những nhân vật cụ thể?
dùng253751

7
@immibis Avì lý do rõ ràng. Ucho chuỗi thoát Unicode ( \u0041A), Xcho các chuỗi hex thoát ( \x41), +cho ordinals Unicode ( U+0041), &cho các thực thể HTML, #vì tôi thực sự không biết, 65là thứ chữ số thập phân của A, 41là thứ tự hex của A, 97là thứ chữ số thập phân của a0vì một vài lý do trước đây
Mego

Câu trả lời:


86

Pluso, 1 byte

o

Trang Pluso Esolang .

Pluso chứa một bộ tích lũy duy nhất, bắt đầu bằng giá trị 1. Nó sử dụng hai lệnh, p làm tăng bộ tích lũy (mod 27) và o in giá trị hiện tại dưới dạng ký tự ASCII chữ hoa, AZ hoặc dấu cách (trong đó 1-26 đại diện AZ tương ứng và 0 đại diện cho không gian).

Như accumulator bắt đầu từ 1, lệnh o không có trước p chí đầu ra Một .


14
Chào mừng đến với PPCG! Tôi sẽ khuyên bạn nên đưa ra lời giải thích trong câu trả lời của bạn, trong trường hợp liên kết chết vì bất kỳ lý do gì.
TheBikingViking 22/8/2016

Giải thích thêm. Chờ phê duyệt của người điều hành.
KPM

2
Cảm ơn lời giới thiệu (và chào mừng), tôi đã cập nhật câu trả lời của mình để bao gồm một lời giải thích ngắn gọn.
cdw

Tôi chỉ nâng cấp để đặt bạn ở 666 rep. Xin lỗi vì điều đó.
Aidan F. Pierce

5
Không phải điều này thất bại trong bài kiểm tra "là một esolang" bởi vì nó không thể kiểm tra tính nguyên thủy?
Bạch tuộc ma thuật Urn

155

Python 2, 14 byte

print`3<3`[~3]

Biểu thức 3<3cho Boolean Falsevà backticks đưa ra biểu diễn chuỗi của nó 'False'. Từ đây, nó vẫn còn để trích xuất bức thư a. Python là chỉ mục 0, vì vậy, atại chỉ mục 1, là một ký tự bị cấm. Nó có thể được thể hiện như 3-2, nhưng có một cách ngắn hơn. Python cho phép lập chỉ mục từ phía sau, với chỉ mục -1cho mục cuối cùng, -2cho mục trước nó, v.v. Chúng tôi muốn chỉ số -4, nhưng 4cũng là một số bị cấm. Nhưng, chúng ta có thể biểu thị nó như là ~3sử dụng phần bù bit ~, mang lại -n-1cho ~n.


7
Đó là một thực sự giải pháp tuyệt vời. Ngoài ra, bạn không thể làm [2]thay vì [~3]?
DJMcMayhem

6
@DJMcMayhem Thật không may, nó được lập chỉ mục 0, nó sẽ cần [1].
xnor

4
... tại sao 14'cấm' số ??
Chris Cirefice

4
Các quy tắc của thách thức nói như vậy.
xnor

20
Bây giờ tôi thậm chí đang cân nhắc việc sử dụng "~ 0" được đọc là "phần tử đầu tiên được lập chỉ mục từ phía sau". Tôi tự hỏi tại sao chúng ta sẽ sử dụng ký hiệu "-1" trong Python ....
PascalVKooten

66

Bình thường, 2 byte

hG

Kiểm tra nó trong Trình biên dịch Pyth .

Làm thế nào nó hoạt động

 G  Yield the lowercase alphabet.
h   Extract the first character.

48

PHP, 9 6 byte

<?=O^_^Q;

Đối với 9 byte: Lấy cảm hứng từ câu trả lời của @TonMedel . Thêm vào đó, nó có thêm lợi ích là trông hơi giống Kaomoji. :-)

Phiên bản cải tiến 6 byte:

<?=~¾;

trong đó có mã hex là 0xBE (điều quan trọng là phải lưu tệp ở dạng mã hóa Latin-1 , chứ không phải UTF-8!).


Một phiên bản thay thế là f^E^b.
Ismael Miguel

Có, các giải pháp 9 byte rất phong phú. Tôi đã bắt đầu với y ^ '8' và x ^ '9', không may là các số phải được truyền thành chuỗi hoặc nó sẽ XOR loại kết quả sẽ là một số nguyên.
YetiCGN

23
+1 cho khuôn mặt^_^
Cyoce

Phiên bản 6 Byte không in A. Nó in =A.
UTF-8

1
Tôi biết câu trả lời cho câu đố này ngay bây giờ: Trong UTF-8, mật mã "phân số ba phần tư" được mã hóa thành hai byte: 0xC2 0xBE , 0xBE giống như trong ISO-8859-1 . Tôi nhận thấy rằng khi tôi lưu tệp này vào một tệp trên hộp linux của tôi, mà tôi truy cập qua SSH bằng UTF-8, tất nhiên, tệp đó là 7 byte . Vì vậy, hãy lưu tập lệnh với mã hóa Latin-1 và nó sẽ là 6 byte và không xuất =ký tự.
YetiCGN


32

cân não, 16 byte

-[-[---<]>>-]<-.

Điều này dựa trên thuật toán brainfuck của Esolang cho 159 .

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


3
Đây .... đây là phù thủy.
Conor O'Brien

3
Giải pháp này sử dụng ô ở chỉ số -1, không được hỗ trợ trên tất cả các trình thông dịch Brainfuck và sẽ dẫn đến sự cố. Bạn có thể chạy nó ở đây để xem fatiherikli.github.io/brainfuck-visualizer/ khăn
Cody

37
@Cody Trên PPCG, các ngôn ngữ được xác định bởi việc triển khai chúng. Miễn là có một thông dịch viên hành xử như mong muốn, đó là một giải pháp hợp lệ.
Dennis

3
Làm thế nào khó khăn cho bạn để tránh các nhân vật bị cấm?
Hagen von Eitzen

1
@HagenvonEitzen Tôi đã phải đào một chút để tìm một thuật toán có thể tránh được +. (cách ngắn nhất để in A sẽ là >+[+[<]>>+<+]>.), nhưng nhờ vào danh sách các hằng số trên Esolang, không quá khó.
Dennis

30

JavaScript (ES6), 17 16 14 byte

Lưu hai byte nhờ Neil!

_=>` ${-_}`[2]

Trả về ký tự thứ hai của NaN, đó là a.

Đây là đoạn ngắn nhất tôi có thể nghĩ ra A, 43 42 byte:

_=>`${[][`constr${`${!_}`[2]}ctor`]}`[-~8]

Ai nói là một obfuscator không giúp đỡ với golf mã? Không phải tôi!

Giải thích

Cái đầu tiên, chuyên sâu.

_=>` ${-_}`[2]

-_là NaN, vì _không xác định. Để có được chuỗi này như một chuỗi, người ta sẽ cần một trong những điều sau đây:

-_+""
`${-_}`
(-_).toString()

Cái cuối cùng là quá dài, và lần đầu tiên sử dụng +. Vì vậy, chúng tôi sử dụng cái thứ hai. Bây giờ, alà ở chỉ số 1. Điều này không tốt chút nào, vì 1bị cấm. Tuy nhiên, là một chuỗi mẫu, chúng ta có thể đặt một khoảng trắng ở đó để làm cho nó ở chỉ mục 2, do đó để lại cho chúng ta ` ${-_}`.


Cái thứ hai, theo chiều sâu.

_=>`${[][`constr${`${!_}`[2]}ctor`]}`[-~8]

Đây là một doozy.

_=>`                                `[-~8]

Đây là ký tự thứ 9 của chuỗi mẫu bên trong, -~8bằng 9. Trong trường hợp này, chuỗi mẫu này chỉ dành cho chuỗi. Đây là phương trình bên trong đang được xâu chuỗi, ở giữa ${...}:

[][`constr${`${!_}`[2]}ctor`]

Hãy mở rộng điều này một chút:

(new Array())[`constr${`${!_}`[2]}ctor`]

Điều này có được tài sản từ một mảng trống. Thuộc tính này, tất nhiên, là một chuỗi mẫu, nhưng nó có một số văn bản xung quanh nó. Nó gần tương đương với:`constr${${!""}[2]}ctor`

"constr" + `${!_}`[2] + "ctor"

Bên trong lần lượt tương đương với:

(!_).toString()[2]

!_true(vì _undefined, và !undefined === true), và chuyển đổi thành chuỗi là "true". Chúng ta có được nhân vật thứ hai của nó , u; chúng ta phải làm theo cách này để tránh đưa umã vào một cách rõ ràng .

Vì vậy, bit bên trong này tương đương với:

"constr" + "u" + "ctor" === "constructor"

Vì vậy, chúng ta đang nhận được hàm tạo của Array, Arrayhàm. Tôi không thể đặt điều này xuống một cách rõ ràng bởi vì nó có chứa bị cấm A. Bây giờ, xâu chuỗi các Arrayhàm năng suất "function Array() { [native code] }".

Quay lại mã ban đầu:

_=>`${[][`constr${`${!_}`[2]}ctor`]}`[-~8]

Điều này tương đương với, như chúng ta đã thấy:

_=>Array.toString()[-~8]

Tương đương với:

_=>Array.toString()[9]

Cuối cùng tương đương với:

_=>"A"

1
@ColdGolf Không sao đâu.
Conor O'Brien

2
Nó sẽ chống lại các nguyên tắc của một obfuscator để thêm một lời giải thích ...? Tôi tò mò về cách thức hoạt động của nó.
trichoplax

2
@trichoplax Tôi cho rằng sẽ không đau khi tiết lộ phương pháp của mình ở đây;) Tôi đã thêm một lời giải thích cho cả hai.
Conor O'Brien

1
@ OldBunny2800 Số alà một nhân vật bị cấm và đang ở trong toUpperCase.
Conor O'Brien

3
Tôi nghĩ rằng đây là Perl lúc đầu.
Οurous

29

Lục giác , 4 byte

Ayyy lmao? Khá golfy cho một ngôn ngữ không chơi golf haha. Mã số:

B(;@

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

Một dạng dễ đọc hơn:

 B (
; @ .
 . .

Điều này đặt giá trị ASCII của chữ Bcái là 66 trên cạnh bộ nhớ hiện tại. Nó tạo ra nó bằng cách sử dụng (và in nó với ;. Sau đó, chương trình được kết thúc bằng cách sử dụng @.

Hình ảnh đường dẫn bắt buộc:

nhập mô tả hình ảnh ở đây


8
"dễ đọc hơn" + hexagony = ???
Không phải Charles

18

Thạch , 3 byte

ØWḢ

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

Làm thế nào nó hoạt động

ØWḢ  Main link. No arguments.

ØW   Yield "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_".
  Ḣ  Head; extract the first character.

Thạch, 4 byte

l-ṾṂ

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

Làm thế nào nó hoạt động

l-ṾṂ  Main link. No arguments.

l-    Take the logarithm of 0 with base -1. Yields (nan+infj).
  Ṿ   Uneval; yield the string representation, i.e., "nanıinf".
   Ṃ  Take the minimum, returning 'a'.

1
Quá xấu cách tiếp cận thứ hai dài hơn. ._.
Dennis

6
Cảm ơn bao gồm cách tiếp cận thứ hai. Thật đẹp
trichoplax

18

Trên thực tế , 2 byte

úF

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

Giải trình:

úF
ú   lowercase English alphabet
 F  first element

bạn có phải là tác giả không Tôi chưa từng thấy ngôn ngữ này trước đây.
loa_in_

Tôi đã thấy nó bật lên một vài lần trong các thử thách bây giờ. Tôi nghĩ rằng nó có tên thông minh nhất trong số các ngôn ngữ chơi gôn trên trang web :-) Tôi đã xem Suit gần đây và tôi thấy nó rất giống Harvey.
corsiKa


12

Bong bóng , 1 byte

"

hoặc là

B

Mọi người dường như quên mất nó tồn tại ...


Chưa bao giờ sử dụng Bubblegum trước đây, vì vậy có lẽ xin lỗi cho sự thiếu hiểu biết của tôi, nhưng tôi có thể tìm tài liệu cho Bubblegum ở đâu? Ngoài ra, tôi đã thử bubblegum.tryitonline.net với cả hai câu trả lời của bạn, nhưng dường như nó không cho ra bất cứ điều gì.
Kevin Cruijssen

1
@KevinCruijssen Doc: esolangs.org/wiki/Bubblegum TIO dường như chỉ chấp nhận hexdump của mã nguồn, vì vậy hãy thử nó như thế này: bubblegum.tryitonline.net/
tựa

Ah, đó là vấn đề của tôi; không sử dụng hexdump. Cảm ơn và +1 vì là ngắn nhất với câu trả lời một byte (gắn với Pluso).
Kevin Cruijssen

@KevinCruijssen Có câu trả lời Pluso 1 byte. Nó có một số vấn đề với một quy tắc trang web lạ, mặc dù.
jimmy23013

10

Perl, 9 8 byte

xor vẫn được cho phép, nhưng saykhông. Vì vậy, đối với 9 byte:

print$/^K

Tuy nhiên, sử dụng đầu ra cho STDERR cho 8 byte:

die~"\x9e\xf5"

Thay thế \x9e\xf5bằng các phiên bản nghĩa đen của họ. Hoặc tạo tệp thực thi bằng cách sử dụng:

perl -e 'printf q(die~"%s"),~"a\n"' > a.pl

@ColdGolf: Điều đó không rõ ràng với tôi. Ý bạn là tôi có thể sử dụng say(chứa a) để in miễn là việc xây dựng đối số không sử dụng các ký tự bị cấm?
TonMedel

"Tuy nhiên, bạn không được sử dụng bất kỳ ký tự nào dưới đây trong mã của mình: * A, cho dù là chữ hoa hay chữ thường." Từ đó, tôi print "No using the letter with code point 65";.
haykam

@ColdGolf có nghĩa là trả lời câu hỏi theo cách nào?
hobbs

10

> <> , 6 byte

'|;o-$

điều này tạo ra một chuỗi các ký tự, nảy và tạo lại nó theo chiều ngược lại, lật 2 mục trên cùng và trừ: '|' (124) trừ ';' (59) là 'A' (65)

Dùng thử trực tuyến


2
Đẹp! Tôi đã nhận '$-o;|được gần như giống nhau nhưng không bị nảy. ( |;o-$'cũng hoạt động.)
Randomra

1
@randomra ồ! điều đó chắc chắn sẽ chạy nhanh hơn, công việc tốt như vậy
torcado

10

Ruby, 15 12 byte

$><<to_s[-3]

1
Bạn có thể lưu 2 byte thay đổi $><<thành p , thực hiệnp to_s[-3]
Ephi

@Ephi pgọi inspectcác đối số của nó, vì vậy đầu ra sẽ được trích dẫn, điều này sẽ không đủ điều kiện.
Jordan

Tôi đã bỏ lỡ một phần của thử thách, tôi sẽ để những bình luận đó vì tôi nghĩ đó là một thông tin thú vị :)
Ephi

10

Java, 55 byte

void f(){System.err.write('c'-2);System.err.println();}

Vì mã phải in nó, nên một trong hai nhà văn tích hợp sẵn là bắt buộc. System.outlà, tốt, ra, bởi vì nó chứa u. System.errcông trình, tuy nhiên.

Rào cản tiếp theo là việc xử lý charint. Vì nó không được phép chuyển sang charvì nó chứa avà vì 'c' - 2được quảng bá int, nên cần có một cơ chế khác. System.errlà một PrintWriter, trong đó có một write(char)phương pháp nhưng không write(int). Đưa 'c' - 2vào đó buộc nó charkhông có diễn viên.

Cuối cùng, mỗi khi tôi chạy chương trình, bộ đệm System.errsẽ không bị xóa như dự kiến ​​và chương trình không in gì cả. Vì vậy, tôi đã phải xả nó bằng tay. Tuy nhiên, System.err.flush()không được phép, vì vậy tôi đã gọi println()nó ngầm xóa luồng bên dưới.


9

MATL, 5 byte

YNVH)

Dùng thử trực tuyến

Giải trình

YN      % Creates a NaN value (not a number)
V       % Convert it to a string
H)      % Grab the second letter ('a')
        % Implicitly display the result

Câu trả lời ban đầu của tôi là cách tiếp cận thẳng về phía trước bằng cách sử dụng chữ được xác định lY2trước sẽ sinh ra 'A'...'Z'và sau đó chọn phần tử đầu tiên , 'A'.

lY2l)

9

Javascript, 18 byte 16 byte 12 byte 11 byte

` ${!2}`[2]

Dựa trên những điều cơ bản đã được sửa đổi của jsfuck (phải tìm ra cách thay thế +bằng -).

Ung dung?

Chà, ít nhất là một phiên bản có ý kiến ​​(lưu ý rằng phiên bản này có thể sẽ không chạy):

` ${      // whitespace to make "a" the third letter
  !2      // returns false
}`        // convert to string "false"
[2]       // index the third letter in " false" (note the whitespace)

Giải pháp cũ:

`${![]}`[-(-!![])]

Bạn có thể thay thế dấu ngoặc đơn bằng khoảng trắng giữa các dấu trừ.
PurkkaKoodari

@ Pietu1998: Tôi nhận thấy rằng 3được cho phép nên đã thay thế toàn bộ thứ cũ kỹ nhàm chán 3-2để có được1
slebetman

Đã lưu một byte nhờ câu trả lời của Conor O'Brien
slebetman

1
Uh, không xúc phạm, nhưng điều này khá nhiều là câu trả lời của tôi. Ngoại trừ bạn sử dụng sai thay vì NaN và không sử dụng chức năng.
Conor O'Brien

8

Vim, 16 13 11 10 tổ hợp phím

Cảm ơn H Walters đã lưu hai khóa

Cảm ơn DJMcMayhem vì đã cứu người khác!

:h%<cr>jvyZZp
:h%<cr> #open help for percent
jvy     #move down one char (to the letter "a"), visual mode the character, yank
ZZ      #exit help for percent
p       #put yanked character

Cách tiếp cận rất hay!
YetiCGN

2
Tiết kiệm 3 byte; thay vì :h<cr>, hãy thử :h%<cr>. Đó là một nhân vật phụ, nhưng bạn sẽ giúp đỡ %, với con trỏ của bạn ngay trên một. Vì vậy, từ đây bạn có thể thay thế 33llbằng j.
H Walters

Xin lỗi về lỗi đánh máy rõ ràng (lưu 2 byte)
H Walters

Bạn có thể sử dụng ZZthay vì :q<cr>để lưu một cái khác.
DJMcMayhem

8

R, 27 12 byte

EDIT: Phiên bản mới, từ một ý tưởng tuyệt vời từ @Jarko Dubbeldam

LETTERS[T*T]

Khá là một thử thách hài hước!

Về cơ bản, 26thphần tử này lấy phần tử của vectơ đảo ngược chứa các chữ cái in hoa ( LETTERSlà vectơ tích hợp của R )

Phiên bản trước s (cùng số byte) :

L=LETTERS;rev(L)[length(L)]
rev((L=LETTERS))[length(L)]

1
Một chút muộn, nhưng bạn có thể tiết kiệm khá nhiều với LETTERS[T*T]. Tđánh giá 1khi thực hiện các phép toán số.
JAD

Tôi tìm thấy một giải pháp ngắn hơn!
Giuseppe

Về mặt kỹ thuật, đây không phải là một giải pháp --- nó in '[1] "a"', thay vì chỉ 'a'
JDL

8

> <> , 7 4 byte

Đã lưu 3 byte nhờ Teal pelican

"-o.

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

Giải trình

"-o."   # pushes the string "-o."
-       # subtracts the charcode of o from the charcode of . (dot), 111-46=65
o       # prints as character
.       # tries to pop 2 coordinates to jump to, but as nothing is left on the stack
        # the program ends in an error

Tôi đã hoàn thành"B"1-o;
DanTheMan

@DanTheMan Đó phải là giải pháp rõ ràng hơn. Tôi tự hỏi tại sao tôi không nghĩ về điều đó: P
Emigna

@DanTheMan: - Tắt những gì Dan đăng bạn có thể giảm điều này xuống hơn nữa; "1-o; B hoặc thậm chí tốt hơn" + o; & vì cả hai trường hợp đều được phép tạo 5 byte này :) - bạn thậm chí có thể làm cho nó 4 byte bị lỗi; "-Oo
Bồ nông Teal

@Tealpelican: Thật tuyệt vời! Sử dụng chuỗi thường ngắn nhất trong các thử thách như thế này, nhưng tôi thậm chí không cân nhắc điều đó :)
Emigna

Khi tôi thấy bình luận của Dan, nó gợi cho tôi về một thử thách cũ hơn như thế này nên chỉ sử dụng khái niệm tương tự :)
Teal pelican

7

Vim, 2 tổ hợp phím

vim -u NONEsau đó chạy như sau ( -u NONEtắt tùy chỉnh)

i<up>

Khi vim được chạy trong chế độ tương thích, các phím mũi tên sẽ không được hiểu đúng. <up>được giải thích <esc>OAmà để lại sau đây trong chế độ chèn. Mà sẽ rời đi (với một vài dòng mới)

A

ibắt đầu chế độ chèn.
<up>thoát khỏi chế độ chèn, mở một dòng trên và nhập A vào bộ đệm

Ví dụ về những người gặp phải điều này trong tự nhiên. https://stackoverflow.com/questions/6987317/fter-moving-the-coder-across-a-vim- Process-open-in-a-tux-session-every-now-a / 6988748 # 6988748


Tôi cười khi đọc nó. Đây là công việc tốt. Vũ khí hóa tuyệt vời của một cái gì đó tôi biết, nhưng sẽ không nghĩ đến.
udioica

6

Brainfuck, 192 19 byte

----[>---<----]>--.

Cảm ơn @NinjaBearMonkey đã giúp tôi lưu byte hella

-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------------------.

Tôi không giỏi về Brainfuck vì vậy tôi chắc chắn có một giải pháp ngắn hơn, nhưng nó hoạt động bằng cách giảm xuống dưới 0, cuộn byte và tiếp tục cho đến khi nó xuống đến 'A', sau đó in.


1
không phải là một đối thủ nặng ký Nếu bạn thực sự đánh nó xuống, người chơi xuống có thể đảo ngược phiếu bầu của họ
Lemon

Sẽ không ngắn hơn nhiều nếu chỉ đếm tới 65, thậm chí với 65 kìm?
NinjaBearMonkey

2
'+' không được phép, vì vậy tôi phải quay lại
Cody

Xin lỗi, tôi đã không nhìn thấy điều đó. Mặc dù vậy, vẫn còn nhiều cách ngắn hơn để thực hiện 191 .
NinjaBearMonkey

2
Đó là giải pháp 192 byte, tôi chỉ để lại và thực hiện thay vì xóa nó vì tôi nghĩ nó thật buồn cười khi chuyển từ 192 đến 19
Cody

6

JavaScript (ES6), 21 byte

_=>(8^2).toString(22)

Ban đầu tôi đã thử chuyển đổi falsethành chuỗi để làm điều này, nhưng tôi phải mất 23 byte vào thời điểm đó. Kể từ đó, tôi đã nghĩ ra một cách ngắn hơn, đó là 14 byte:

_=>`!${!2}`[2]

Tôi không nghĩ rằng bạn có thể viết hoa Atheo quy tắc, vì bạn cần một String.fromCharCodehoặc .toUpperCase()cả hai đều chứa a.


Bạn có thể viết hoa bằng cách sử dụng JSF hoặc một công cụ phái sinh bằng cách sử dụng các thuộc tính được tính toán
Downgoat

1
@Downgoat Conor O'Brien đã chỉ ra cách làm.
Neil

6

C, (19?) 24 byte

Cảm ơn Dennis:

f(){printf("%c",88-23);}

cùng chiều dài:

f(){printf("%c",'C'-2);}

cũng cho phép viết thường:

f(){printf("%c",'c'-2);}

Có một giải pháp 19 byte là một hàm sửa đổi tham số của nó, có một lỗ hổng:

g(int*p){*p='C'-2;}

//Usage:

main(){
  int c; //cannot be char
  g(&c);
  printf("%c\n",c);
}

Nếu cđược khai báo char, gsửa đổi toàn bộ intđể nó phá vỡ ngăn xếp khiến các giá trị khác bị sửa đổi hoặc chương trình hủy bỏ với thông báo lỗi. Cách duy nhất để phá vỡ là khai báo int c;trong mainvà in với "%c", nhưng mà cảm thấy giống như một kẽ hở.

giải pháp cũ

f(){printf("%c",'B'-2/2);} //26 bytes
f(i){i='B';printf("%c",--i);} //29 bytes
f(){int*i="B";int j[]={*i-(2/2),2-2};printf("%s",j);} //53 bytes

Chỉ là một chức năng, vì mainbị cấm.


3
88-23nên tiết kiệm một vài byte.
Dennis

Đối với chữ thường a, bạn có thể sử dụng (333-33) / 3-3. Nó không ngắn như 'c'-2, nhưng nó 3er. 33 * 3-2 cũng có thể.
rici

Nếu bạn sử dụng write () thay vì printf, bạn có thể biến nó thành một chương trình; chỉ định các bước xây dựng để đảm bảo bạn không liên kết với bất kỳ libc nào; nếu không có _start biểu tượng đầu tiên được nhảy tới và _exit được cho phép để nó an toàn. Ít nhất một phiên bản của gcc sẽ tối ưu hóa write () vào tòa nhà trực tiếp mà không có chức năng gọi nào cả.
Joshua

Tùy thuộc vào IDE của bạn, bạn có thể làm một cái gì đó như thế này: printf("%c",~'ɦ');mặc dù "A" sẽ có dấu trọng âm được thêm vào
Albert Renshaw

@AlbertRenshaw ɦlà một ký tự 2 byte
Karl Napf

6

dc, 4 byte

833P

Tràn UCHAR_MAX cuộn qua bảng sáu ba lần trước khi hạ cánh ở mức 65.


6

Lua, 36 byte

Điều này đã cho tôi một thời gian kể từ khi nhiều chức năng Lua chuẩn được lấy đi từ các quy tắc (tất cả math, string.char, string.match, pairs, ngay cả next)

Điều này lợi dụng thực tế là Lua có toàn cầu _VERSIONthường bắt đầu bằng "Lua" (ví dụ, Lua 5.1hoặc tương tự cho các phiên bản khác), vì vậy trừ khi điều này được chạy trên một trình thông dịch không chính thống, ký tự thứ ba sẽ là 'a'

print(({_VERSION:find("..(.)")})[3])

Việc {...}[3]nhóm các kết quả findcũng bao gồm các chỉ số mà nó khớp, và sau đó trả về mục thứ ba là ký tự khớp (the a)


1
print(({type{}:find".(.)"})[3]) 31 byte
Egor Skriptunoff 27/8/2016

6

Haskell, 10 byte

Là một hàm (hay đúng hơn là một câu lệnh vì không yêu cầu đầu vào)

f=pred 'B'

không lừa Hãy thử nó trên Ideone. Một chương trình đầy đủ là không thể vì điều này sẽ cần phải chứa một main.


Tôi không nghĩ rằng điều này là hợp lệ. Nhiệm vụ yêu cầu "in" hoặc "hiển thị" A. Các chức năng của bạn chỉ trả về nó và chương trình được liên kết sẽ hiển thị thông qua putCharđó sử dụng u.
nimi

Bạn đã đúng, tuy nhiên các quy tắc đã được cập nhật và bây giờ quay trở lại từ một chức năng có vẻ ổn.
Laikoni

Không, các quy tắc vẫn nói printvà / hoặc display.
nimi

2
Dennis hỏi rõ ràng liệu trả về từ một chức năng thay vì in có ổn không và OP trả lời có, nhưng từ ngữ được cập nhật sau đó của câu hỏi vẫn không phản ánh điều này. Tôi đoán chúng ta vẫn phải chờ làm rõ thêm.
Laikoni

1
OP xác nhận rằng Anên được in / hiển thị và không được trả lại.
nimi


5

đc số 8 7 byte

-1B nhờ Dennis

88 23-P

Đẩy 88, đẩy 23, trừ, để lại 65. In đầu ngăn xếp (65) dưới dạng chuỗi ASCII, theo dõi dòng mới.

Biên tập:

Đây là một vài trong số những cách khác mà tôi đã đưa ra. Về cơ bản, nó đã trở thành một trò chơi "tạo ra các số 65 và 97 chỉ bằng cách sử dụng [238B-F]và không thêm". Trớ trêu thay, tôi thấy những cái dài nhất thú vị nhất.

_Fdd/r-oC 2-n  # involves changing the base
2_2/8d*3*2/-P
Idd2/2/-2*on   # also changes base
2d8r^r_2/-P
8d*2_2/-P
B 3d**2-P
33 3*2-P
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.