A가없는 문자 A


69

당신의 임무는 프로그램 및 / 또는 코드 조각에서 그렇게 피할 수없는 경우, 줄 바꿈 개행의 형태를 제외하고 다른 문자없이 문자 "A"를 표시하는 것입니다. 인쇄 대신 반환되는 코드가 허용됩니다.

문자 "A"의 소문자 및 대문자 버전을 모두 사용할 수 있습니다 (즉, 유니 코드 U + 0061 또는 유니 코드 U + 0041) . 유니 코드가 아닌 다른 문자 인코딩은 허용되지만 어느 쪽이든 코드의 결과 출력은 모양이나 상형 문자가 아닌 라틴 문자 "A"여야합니다.)

선택한 문자 인코딩에 관계없이 코드에서 아래 문자를 사용 해서는 안됩니다 .

  • " A "(대문자 또는 소문자)

  • " U "(소문자 또는 대문자)

  • 대문자 또는 소문자에 관계없이 X

  • +

  • &

  • #

  • 0

  • 1

  • 4

  • 5

  • 6

  • 7

  • 9

부정 행위, 허점 등은 허용되지 않습니다.

이것이 이므로 모든 규칙을 따르는 가장 짧은 솔루션은 바이트 단위입니다.


유효성 검사기

이 스택 스 니펫은 코드가 제한된 문자를 사용하지 않는지 확인합니다. 일부 문자 인코딩에서는 제대로 작동하지 않을 수 있습니다.

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

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

허용되지 않는 문자가없는 스택 스 니펫은 JSFiddle 에서도 사용할 수 있습니다 .

리더 보드


7
@ColdGolf 함수에 "예"라고 말하는 것처럼 보이지만 함수는 표시되지 않으며 보통 반환합니다.
xnor

2
a충분히 포함 된 변수로 끝나는가 ?
Ton Hospel

1
그건 나의 의도가 아니 었어. 변수 할당을 수행하는 코드에는 금지 된 문자가 포함되지 않습니다. 난 그냥 "인쇄 이외의 수단으로 표시"로 덮여있는 것을 이해하려고합니다. "함수에서 복귀"가 정상이면 "변수에 할당"은 어떻습니까?
Ton Hospel

1
왜 그런 특정 인물입니까?
user253751

7
A명백한 이유로 @immibis . U유니 코드 이스케이프 문자열 (에 \u0041있다 A), X진수 이스케이프 문자열 (위해 \x41), +유니 코드 서수 (위해 U+0041), &HTML 엔티티, #실제로 모르는를 들어, 65의 진수 순서입니다 A, 41의 진수 서수 인 A, 97의 진수 순서입니다 a0이전 이유 중 몇합니다.
Mego

답변:


86

Pluso, 1 바이트

o

Pluso Esolangs 페이지 .

Pluso는 값 1로 시작하는 단일 누산기를 포함합니다.이 누산기는 두 개의 명령을 사용합니다. p 는 누산기 (mod 27)를 증가시키고 o 는 현재 값을 대문자 ASCII 문자, AZ 또는 공백으로 표시합니다 (여기서 1-26은 AZ, 각각 0은 공백을 나타냅니다.

누산기가 1에서 시작하면 사전 p 가 없는 o 명령 이 A 를 출력 합니다.


14
PPCG에 오신 것을 환영합니다! 어떤 이유에서든 링크가 죽는 경우를 대비하여 설명에 답해 두는 것이 좋습니다.
TheBikingViking

설명이 추가되었습니다. 중재자 승인을 기다리는 중입니다.
KPM

2
추천 (및 환영)에 감사드립니다. 간단한 설명을 포함하도록 답변을 업데이트했습니다.
cdw

방금 666 명의 담당자를 선임했습니다. 미안합니다.
Aidan F. Pierce

5
"이 솔랑"테스트는 우선 순위 검사를 수행 할 수 없기 때문에 실패하지 않습니까?
매직 문어 Urn

155

파이썬 2, 14 바이트

print`3<3`[~3]

표현식 3<3은 부울을 제공하고 False백틱은 문자열 표현을 제공합니다 'False'. 여기에서 글자를 추출해야합니다 a. 파이썬은 인덱스가 0이므로 a인덱스 1에 있습니다. 로 표현할 수 3-2있지만 더 짧은 방법이 있습니다. 파이썬은 뒤에서 색인을 생성 -1하고 마지막 항목에 -2대한 색인 과 그 이전 항목에 대한 색인 등을 허용합니다 . 우리는 index -4를 원하지만 4금지 된 숫자이기도합니다. 그러나, 우리는로 표현할 수있는 ~3비트 보완하여 ~제공, -n-1위해를 ~n.


7
즉 A의 정말 멋진 솔루션입니다. 또한 [2]대신에 할 수 없었 [~3]습니까?
DJMcMayhem

6
@DJMcMayhem 불행히도 0 인덱싱되었으므로 필요합니다 [1].
xnor

4
... 왜 14숫자를 '금지'?
크리스 Cirefice

4
도전의 규칙은 그렇게 말합니다.
xnor

20
나는 이제 "~ 0"을 "뒤에서 0으로 인덱스 된 첫 번째 요소"로 읽는 것을 고려하고 있습니다. 우리가 사용하는 이유 궁금 "-1"표기법을 파이썬에서 ....
PascalVKooten

66

Pyth, 2 바이트

hG

Pyth Compiler 에서 테스트하십시오 .

작동 원리

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

48

PHP, 9 6 바이트

<?=O^_^Q;

9 바이트 : @Ton Hospel의 답변에서 영감을 얻었습니다 . 또한 Kaomoji와 비슷하게 보입니다. :-)

6 바이트 개선 버전 :

<?=~¾;

¾이 0xBE의 16 진수 코드를 갖는 (그것의 파일을 저장하는 것이 중요 라틴 1 인코딩 , 하지 UTF-8!).


대체 버전은 f^E^b입니다.
Ismael Miguel

예, 9 바이트 솔루션은 풍부합니다. y ^ '8'및 x ^ '9'로 시작했지만 불행히도 숫자를 문자열로 캐스트해야합니다. 그렇지 않으면 XOR 결과 유형이 정수가됩니다.
YetiCGN

23
얼굴 +1^_^
Cyoce

6 바이트 버전이 인쇄되지 않습니다 A. 인쇄합니다 =A.
UTF-8 8

1
UTF-8에서 "fraction three quarters"코드 포인트는 2 바이트로 인코딩됩니다 : 0xC2 0xBE , 0xBE는 ISO-8859-1 과 동일 합니다. 나는 이것을 리눅스 박스의 파일에 저장할 때 UTF-8로 SSH를 통해 액세스 할 때 파일이 7 바이트 라는 것을 알았다 . 따라서 라틴 -1 인코딩으로 스크립트를 저장하면 6 바이트가되고 =문자가 출력되지 않습니다 .
YetiCGN


32

brainfuck, 16 바이트

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

이것은 159 에 대한 Esolang의 brainfuck 알고리즘을 기반으로 합니다.

온라인으로 사용해보십시오!


3
이것은 .... 이것은 마법사입니다.
코너 오브라이언

3
이 솔루션은 인덱스 -1의 셀을 사용하는데, 이는 모든 brainfuck 인터프리터에서 지원되지 않으며 충돌이 발생합니다. fatiherikli.github.io/brainfuck-visualizer/…
Cody

37
@Cody PPCG에서 언어는 구현에 의해 정의됩니다. 만큼 존재로 하나 로서 원하는 동작 해석기, 그것이 유효한 솔루션이다.
Dennis

3
금지 된 인물을 피하기가 얼마나 어려웠습니까?
Hagen von Eitzen

1
@HagenvonEitzen 피할 수있는 알고리즘을 찾기 위해 약간을 파야했다 +. ( A 를 인쇄 하는 가장 짧은 방법 은 >+[+[<]>>+<+]>.)이지만 Esolang의 상수 목록 덕분에 너무 어렵지 않습니다.
Dennis

30

자바 스크립트 (ES6), 17 16 14 바이트

Neil 덕분에 2 바이트를 절약했습니다!

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

의 두 번째 문자를 돌려 NaN입니다 a.

이것은 내가에 가지고 올 수있는 가장 짧다 A, 43 42 바이트 :

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

난 독자가되는 것이 코드 골프에 도움이되지 않는다고 누가 말합니까? 내가 아니야!

설명

첫 번째는 깊이입니다.

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

-__정의되지 않았기 때문에 NaN 입니다. 이것을 문자열로 얻으려면 다음 중 하나가 필요합니다.

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

마지막은 너무 길고 첫 번째는를 사용합니다 +. 그래서 우리는 두 번째를 사용합니다. 이제는 aindex에 1있습니다. 1금지되어 있기 때문에 이것은 좋지 않습니다 . 그러나 템플릿 문자열 2이기 때문에 index에 공백을 넣을 수 있습니다 ` ${-_}`.


두 번째는 깊이입니다.

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

이것은 멍청했다.

_=>`                                `[-~8]

이것은 내부 템플릿 문자열의 9 번째 문자이며 9 -~8와 같습니다.이 경우이 템플릿 문자열은 단지 문자열 화를위한 것입니다. 이것은 다음 식 사이에서 문자열 화되는 내부 방정식입니다 ${...}.

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

이것을 조금 확장 해 봅시다 :

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

빈 배열에서 속성 을 가져 옵니다. 물론이 속성은 템플릿 문자열이지만 그 주위에 텍스트가 있습니다. 대략 다음과 같습니다.`constr${${!""}[2]}ctor`

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

내부는 다음과 같습니다.

(!_).toString()[2]

!_이다 true(때문 _이다 undefined, 그리고 !undefined === true)이고도 캐릭터 라인 "true". 우리는 그것의 두 번째 특성을 얻습니다 u. u코드를 명시 적으로 넣는 것을 피하려면 이런 식으로해야 합니다.

따라서이 내부 비트는 다음과 같습니다.

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

그래서 우리는 Array의 생성자 인 Array함수를 얻습니다 . forbidden이 포함되어 있기 때문에 명시 적으로 내려 놓을 수 없습니다 A. 이제 Array함수를 문자열 화하면이 됩니다 "function Array() { [native code] }".

원래 코드로 돌아 가기

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

우리가 본 것처럼 이것은 다음과 같습니다.

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

다음과 같습니다.

_=>Array.toString()[9]

마지막으로 다음과 같습니다.

_=>"A"

1
@ColdGolf 괜찮습니다.
코너 오브라이언

2
설명을 추가하는 것이 난 독자의 원칙에 위배 될까요? 이것이 어떻게 작동하는지 궁금합니다.
trichoplax

2
@ trichoplax 여기에 내 방법을 밝히는 것이 아프지 않을 것이라고 생각합니다.) 두 가지에 대한 설명을 추가했습니다.
Conor O'Brien

1
@ OldBunny2800 No. a는 금지 된 문자이며 안에 toUpperCase있습니다.
코너 오브라이언

3
나는 이것이 처음에 Perl이라고 생각했다.
OUurous

29

헥사 고니 , 4 바이트

에일 리마 오? 골프가 아닌 언어 하하에 대한 골프. 암호:

B(;@

온라인으로 사용해보십시오!

더 읽기 쉬운 형태 :

 B (
; @ .
 . .

B현재 메모리 가장자리에 문자의 ASCII 값 ( 66)을 넣습니다 . 를 사용하여 하나씩 빼고로 (인쇄합니다 ;. 그 후 프로그램은을 사용하여 종료됩니다 @.

필수 경로 이미지 :

여기에 이미지 설명을 입력하십시오


8
"더 읽기 쉽다"+ 육각형 = ???
찰스

18

젤리 , 3 바이트

ØWḢ

온라인으로 사용해보십시오!

작동 원리

ØWḢ  Main link. No arguments.

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

젤리, 4 바이트

l-ṾṂ

온라인으로 사용해보십시오!

작동 원리

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
두 번째 접근 방식이 더 길어서 너무 나쁩니다. ._.
Dennis

6
두 번째 방법을 포함 해 주셔서 감사합니다. 아름답다
trichoplax 17:53에

18

실제로 2 바이트

úF

온라인으로 사용해보십시오!

설명:

úF
ú   lowercase English alphabet
 F  first element

당신은 작가입니까? 나는이 언어를 본 적이 없다.
loa_in_

나는 지금 도전에서 두 번 나타나는 것을 보았습니다. 나는 그것이 사이트에서 골프 언어 중 가장 영리한 이름을 가지고 있다고 생각합니다 :-) 최근에 Suits를보고 있었고 매우 Harvey입니다.
corsiKa


12

풍선 껌 , 1 바이트

"

또는

B

모든 사람들은 그것이 존재한다는 것을 잊어 버린 것 같습니다 ...


전에 Bubblegum을 사용한 적이 없으므로 무지를 변명 할 수는 있지만 Bubblegum 관련 문서는 어디서 찾을 수 있습니까? 또한 두 가지 답변으로 bubblegum.tryitonline.net 을 시도했지만 아무것도 출력하지 않는 것 같습니다.
Kevin Cruijssen

1
@KevinCruijssen Doc : esolangs.org/wiki/Bubblegum TIO는 소스 코드의 16 진 덤프 만 허용하는 것처럼 보였으므로 다음과 같이 시도하십시오. bubblegum.tryitonline.net/…
jimmy23013

아, 그게 내 문제 야. 16 진수 덤프를 사용하지 않습니다. 1 바이트 응답 (플러스와 연결)으로 가장 짧은 것에 감사드립니다.
Kevin Cruijssen

@KevinCruijssen 1 바이트 Pluso 답변이 있습니다. 그러나 이상한 사이트 규칙에는 몇 가지 문제가 있습니다.
jimmy23013

10

펄, 9 8 바이트

xor는 여전히 허용되지만 허용 say되지 않습니다. 따라서 9 바이트의 경우 :

print$/^K

그러나 STDERR에 출력을 사용하면 8 바이트가 제공됩니다.

die~"\x9e\xf5"

교체 \x9e\xf5그들의 문자 버전. 또는 다음을 사용하여 실행 파일을 생성하십시오.

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

@ ColdGolf : 그것은 분명하지 않습니다. say인수 구성에 금지 된 문자를 사용하지 않는 한 인쇄에 a를 사용할 수 있습니까?
Ton Hospel

"하지만 코드에서 다음 문자를 사용해서는 안됩니다. * 대문자 또는 소문자 여부." 그로부터 나는 print "No using the letter with code point 65";.
haykam

@ColdGolf는 어떤 식 으로든 질문에 대답하기위한 것입니까?
홉스

10

> <> , 6 바이트

'|;o-$

이것은 문자열을 만들고 바운스 한 후 다시 뒤집어서 맨 위 2 개의 스택 아이템을 뒤집어 빼고 '|' (124) 빼기 ';' (59)는 'A'입니다 (65)

온라인으로 사용해보십시오


2
좋은! 나는 '$-o;|거의 동일하지만 수신 거부가 없습니다. ( |;o-$'또한 작동합니다.)
randomra

1
@randomra 아 사실! 그것은 확실히 더 빠르게, 아주 잘 작동 할 것입니다
torcado

10

루비, 15 12 바이트

$><<to_s[-3]

1
당신은 2 바이트가 변경 절약 할 수 있습니다 $><<p , 수p to_s[-3]
Ephi

@Ephi 는 인수를 p호출 inspect하므로 출력이 인용되어 실격됩니다.
Jordan

나는 그것을 :) 흥미로운 정보 생각으로 도전의 일부, 나는 그 의견을 드리겠습니다 놓친
Ephi

10

자바, 55 바이트

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

코드가 인쇄해야하므로 내장 된 두 작가 중 하나가 필요합니다. System.out가 포함되어 있기 때문에, 잘, 밖으로이다 u. System.err그러나 작동합니다.

다음 장애물은 Java의 charand 처리입니다 int. 에 char포함되어 a있고로 'c' - 2승격 되어 캐스팅 할 수 없으므로 int다른 메커니즘이 필요합니다. System.errA는 PrintWriter이있는, write(char)방법을하지만 write(int). 'c' - 2거기에 넣으면 char캐스트하지 않아도됩니다.

마지막으로 프로그램을 실행할 때마다 버퍼 System.err가 예상대로 플러시되지 않고 프로그램이 아무것도 인쇄하지 않았습니다. 그래서 수동으로 플러시해야했습니다. 그러나 System.err.flush()허용되지 않으므로 println()기본 스트림을 암시 적으로 플러시했습니다.


9

MATL, 5 바이트

YNVH)

온라인으로 사용해보십시오

설명

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

내 원래의 대답은 미리 정의 된 리터럴 lY2을 사용 'A'...'Z'하고 첫 번째 요소 인을 선택하는 간단한 접근 방식이었습니다 'A'.

lY2l)

9

자바 스크립트, 18 바이트 16 바이트 12 바이트 11 바이트

` ${!2}`[2]

수정 된 jsfuck 기본 사항을 기반으로 합니다 (로 바꾸는 방법을 알아 내야 +했습니다 -).

언 골프?

글쎄, 적어도 의견이있는 버전 (이 버전은 아마도 실행되지 않을 것입니다) :

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

오래된 해결책 :

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

괄호를 빼기 기호 사이의 공백으로 바꿀 수 있습니다.
PurkkaKoodari

@ Pietu1998 : 그 눈치 3때문에 허용 지루한로 전체를 교체 3-2얻을1
slebetman

Conor O'Brien의 답변 덕분에 1 바이트를 절약했습니다
slebetman

1
어, 악의는 없지만 이건 제 대답입니다. NaN 대신 false를 사용하고 함수를 사용하지 않는 것을 제외하고.
코너 오브라이언

8

Vim, 16 13 11 10 키 스트로크

두 개의 키를 저장 한 H Walters에게 감사합니다.

다른 파일을 저장 한 DJMcMayhem에게 감사합니다!

: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

아주 좋은 접근법!
YetiCGN

2
3 바이트를 절약하십시오. 대신에 :h<cr>시도하십시오 :h%<cr>. 그것은 하나의 추가 문자이지만 %커서를 a 바로 위에 놓고 에 대한 도움말을 작성 하십시오. 여기에서 그래서 당신은 대체 할 수 있습니다 33llj.
H Walters

명백한 오타에 대한 사과 ( 2 바이트 저장 )
H Walters

다른 것을 저장 하는 ZZ대신 사용할 수 있습니다 :q<cr>.
DJMcMayhem

8

R, 27 12 바이트

편집 : @Jarko Dubbeldam의 훌륭한 아이디어에서 새로운 버전

LETTERS[T*T]

꽤 재미있는 도전!

기본적으로, 이것은 필요 26th대문자를 포함하는 역 벡터의 원소 ( LETTERSA는, R 의 내장 된 벡터)

이전 버전 s (같은 바이트 수) :

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

1
조금 늦었지만으로 꽤 많은 돈을 절약 할 수 있습니다 LETTERS[T*T]. 수치 연산을 수행 T1때 평가 합니다.
JAD


이것은 기술적으로 해결책이 아닙니다.- 'a'대신 '[1] "a"'를 인쇄합니다.
JDL

8

> <> , 7 4 바이트

청록 펠리칸 덕분에 3 바이트 절약

"-o.

온라인으로 사용해보십시오!

설명

"-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

내가했을 것이다"B"1-o;
DanTheMan

@DanTheMan 더 분명한 해결책이었을 것입니다. 내가 왜 그런 생각을하지 않았는지 궁금해 : P
Emigna

@ DanTheMan :-Dan이 게시 한 것을 제거하면이를 더 줄일 수 있습니다. "1-o; B 또는 더 나은"+ o; & 두 경우 모두이 5 바이트를 만드는 것이 허용되므로 :)-오류가있는 경우에도 4 바이트로 만들 수 있습니다. "-o.
청록 펠리컨

@Tealpelican : 훌륭합니다! 문자열을 사용하는 것은 종종 이와 같은 도전에서 가장 짧지 만, 나는 심지어 그것을 고려하지도 않았습니다 :)
Emigna

내가 댄의 코멘트를보고 일단이 그래서 그냥 동일한 개념 : 사용 꽤처럼 오래된 문제를 생각 나게
청록 펠리칸

7

Vim, 2 번의 키 스트로크

vim -u NONE다음을 실행하십시오 ( -u NONE사용자 정의를 끕니다)

i<up>

vim이 호환 모드에서 실행될 때 화살표 키가 제대로 해석되지 않습니다. 삽입 모드에서 다음을 남기는 <up>것으로 해석 <esc>OA됩니다. 어느 것이 남을 것인가 (두 개의 후행 줄 바꿈으로)

A

i삽입 모드를 시작합니다.
<up>삽입 모드를 종료하고 위의 행을 열고 버퍼에 A를 입력합니다.

야생에서 이것을 만나는 사람들의 예. https://stackoverflow.com/questions/6987317/while-moving-the-cursor-across-a-vim-process-open-in-a-tmux-session-every-now-a/6988748#6988748


내가 읽을 때 나는 웃었다. 이것은 좋은 일입니다. 내가 아는 것의 큰 무기화는 생각하지 못했을 것입니다.
udioica

6

Brainfuck, 192 19 바이트

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

헬라 바이트를 절약하는 데 도움을 주신 @NinjaBearMonkey에게 감사드립니다.

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

나는 Brainfuck에 능숙하지 않으므로 더 짧은 해결책이 있다고 확신하지만 0 미만으로 감소시키고 바이트를 롤오버하고 'A'로 떨어질 때까지 계속 진행하면 인쇄됩니다.


1
심각한 경쟁자가 아닙니다. 실제로 골프를 치기 만한다면, downvoter는 그들의 투표를 뒤집을 수 있습니다
Destructible Lemon

65 개의 플러스로도 최대 65 개까지 계산하는 것이 훨씬 더 짧지 않습니까?
NinjaBearMonkey

2
'+'는 허용되지 않으므로 뒤로 가야했습니다
Cody

미안, 나는 그것을 보지 못했다. 그래도 191을 만드는 훨씬 짧은 방법이 있습니다.
NinjaBearMonkey

2
192 바이트 솔루션이었습니다. 192에서 19로가는 것이 재미 있다고 생각했기 때문에 방금 그대로두고 삭제하는 대신 취소 선을 사용했습니다
Cody

6

자바 스크립트 (ES6), 21 바이트

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

원래이 false작업을 수행하기 위해 문자열로 변환하려고 시도 했지만 당시에는 23 바이트가 걸렸습니다. 나는 더 짧은 방법을 생각해 냈습니다. 이는 14 바이트입니다.

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

난 당신이 대문자를 얻을 수 있다고 생각하지 않습니다 A당신이 중 하나가 필요하기 때문에, 규칙에 따라 String.fromCharCode또는 .toUpperCase()포함 된 두 가지 모두를 a.


JSF를 사용하거나 대문자를 사용하여 계산 된 속성을 사용할 수 있습니다
Downgoat

1
@Downgoat Conor O'Brien은 이미 그 방법을 보여주었습니다.
Neil

6

C, (19?) 24 바이트

Dennis 덕분에 :

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

같은 길이 :

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

소문자도 가능하게합니다.

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

19 바이트 의 결함을 가지고 그것의 파라미터들을 변경하는 기능과 같은 용액 :

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

//Usage:

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

경우 c선언 char, g모든 수정 int이 오류 메시지 중단 다른 변형되는 값 또는 programm에 발생 스택 쳤 있도록. 회피 할 수있는 유일한 방법은 선언하는 것입니다 int c;main와 함께 인쇄 "%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

기능 main은 금지되어 있기 때문에 .


3
88-23몇 바이트를 절약해야합니다.
Dennis

소문자 a의 경우 (333-33) / 3-3을 사용할 수 있습니다. 'c'-2만큼 짧지는 않지만 3er입니다. 33 * 3-2도 가능합니다.
rici

printf 대신 write ()를 사용하면 프로그램으로 만들 수 있습니다. libc에 전혀 연결되지 않도록 빌드 단계를 지정하십시오. _start가 없으면 첫 번째 기호로 이동하고 _exit가 허용되므로 안전합니다. 적어도 하나의 gcc 버전은 함수 호출없이 직접 syscall에 write ()를 최적화합니다.
Joshua

당신의 IDE에 따라이 같은 일을 할 수 printf("%c",~'ɦ');는 악센트 표시가 ㅎ 추가 "A"한 것이지만
알버트 렌쇼

@AlbertRenshaw ɦ는 2 바이트 문자입니다
Karl Napf

6

dc, 4 바이트

833P

UCHAR_MAX 오버 플로우 는 65에 착륙하기 전에 6 번 3 번 테이블을 롤오버합니다 .


6

루아, 36 바이트

표준 루아 기능의 많은이 규칙에서 날라 때문에이 사람은 나에게 동안을했다 (모든 math, string.char, string.match, pairs,도 next)

이것은 Lua가 _VERSION일반적으로 "Lua"로 시작 하는 전역 (예를 들어, Lua 5.1다른 버전과 유사 함)을 가지고 있다는 점을 이용 하므로, 비주류 통역사에서 실행되지 않는 한 세 번째 문자는 'a'가됩니다.

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

{...}[3]그룹의 결과이다 find또한 매칭 인덱스를 포함하고 검색된 문자 제 3 아이템 (리턴 a)


1
print(({type{}:find".(.)"})[3]) 31 바이트
Egor Skriptunoff

6

하스켈, 10 바이트

함수로서 (또는 입력이 필요하지 않은 명령문)

f=pred 'B'

트릭을 수행합니다. Ideone에서 사용해보십시오. 이 프로그램에는을 포함해야하므로 전체 프로그램이 불가능합니다 main.


나는 이것이 유효하다고 생각하지 않습니다. 이 작업은 "인쇄"또는 "디스플레이"가 필요 A합니다. 함수는 단지 그것을 반환하고 연결된 프로그램은를 putChar사용하여 그것을 표시 합니다 u.
nimi

맞습니다. 그러나 규칙이 업데이트되었으며 이제 함수에서 돌아 오는 것이 정상인 것 같습니다.
Laikoni

아니요, 규칙에는 여전히 print및 / 또는이 display있습니다.
nimi

2
Dennis는 인쇄 대신 함수에서 복귀하는 것이 정상이고 OP가 yes로 응답했는지 여부를 명시 적으로 물었지만 나중에 업데이트 된 질문 문구는이를 반영하지 않습니다. 우리는 여전히 더 명확한 설명을 기다려야 할 것 같습니다.
Laikoni

1
OP는 A인쇄 / 표시해야하며 반환하지 않아야 함을 확인했습니다 .
nimi


5

dc, 8 7 바이트

Dennis 덕분에 -1B

88 23-P

88을 밀고 23을 밀고 빼면 65가 남습니다. 스택의 맨 위 (65)를 ASCII 문자열로 인쇄하여 줄 바꿈 문자를 끝냅니다.

편집하다:

이것들은 내가 생각해 낸 다른 몇 가지 방법입니다. 기본적으로 " [238B-F]추가 만 사용 하거나 사용하지 않고 숫자 65와 97을 생성하는"게임이되었습니다 . 아이러니하게도, 나는 가장 긴 것들을 가장 흥미롭게 생각합니다.

_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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.