당신의 작업은 간단합니다. 한 언어로 'abc'
실행될 때 문자열 만 출력 하고 다른 언어로 실행될 때 문자열 만 출력하는 단일 코드 스 니펫을 작성하십시오 'cba'
. 프로그램은 입력하지 않아야합니다.
이것은 코드 골프 도전입니다.
ABC
대신abc
'ABC'
그리고 'CBA'
선행 / 후행 공백 / 줄 바꿈은 괜찮지 만 두 출력 모두 동일해야합니다.
당신의 작업은 간단합니다. 한 언어로 'abc'
실행될 때 문자열 만 출력 하고 다른 언어로 실행될 때 문자열 만 출력하는 단일 코드 스 니펫을 작성하십시오 'cba'
. 프로그램은 입력하지 않아야합니다.
이것은 코드 골프 도전입니다.
ABC
대신abc
'ABC'
그리고 'CBA'
선행 / 후행 공백 / 줄 바꿈은 괜찮지 만 두 출력 모두 동일해야합니다.
답변:
disp(flip('abc',size(randsample(2,2),2)))
매트랩에서 randsample(2,2)
2 × 1 벡터를 제공합니다, 그래서 size(...,2)
이다 1
. 따라서 flip
단일 치수 인 첫 번째 치수를 따라 적용되므로 원래 문자열 'abc'
이 표시됩니다.
옥타브에서 randsample(2,2)
1 × 2 벡터를 제공합니다, 그래서 size(...,2)
이다 2
. 따라서 flip
두 번째 차원을 따라 적용됩니다. 즉, 문자열이 왼쪽에서 오른쪽으로 뒤집 힙니다.
version
변형 을 사용하면 이것이 몇 바이트 더 짧을 것이라고 생각합니다 .
-1 바이트를 걸 경우 ==0
에 >0
그러나 그것은 이미 다른 대답
print('acbbca'[1/2==0::2])
print('acbbca'[1/2==0::2])
1/2
부여합니다 0
(floordiv) 파이썬 (2)에 0.5
따라서 파이썬 3의 (truediv) 1/2==0
파이썬 2 파이썬 3 0에서 1주는 (실제로 논리 값은, 그러나 그것들은 단지 정수)이므로 'acbbca'[1::2] => 'cba'
파이썬 3 부여하고는 'acbbca'[0::2] => 'abc'
파이썬 주어진다 2.
"ABC"
Excel "CBA"
의 호출 셀 및 Google 스프레드 시트의 호출 셀에 입력 및 출력 을 받지 않는 익명의 워크 시트 수식
=IfError(M("CBA"),"ABC")
Google 스프레드 시트에서 M(...)
별칭은 자동 형식화되어 T(...)
(의 줄임말 Text()
)입니다. 이 호출은 전달 된 변수의 텍스트 값을 반환합니다 "CBA"
. "CBA"
그래서, 오류로 적발되지 "CBA"
의해 반환IfError(...,"ABC")
Excel에는 M(...)
함수 M(...)
가 없으며 별칭이 아니므 M("CBA")
로 수식을 찾을 수 없음 오류을 반환합니다 #NAME?
. 이것에 의해 잡히고 IfError(...,"ABC")
, 그 결과로 돌아옵니다 "ABC"
.
설명은 편집을 참조하십시오
=If(IsErr(A()),"ABC","CBA")
=If(IsErr(GT()),"ABC","CBA")
=IfError(If(Info("NUMFILE"),"ABC"),"CBA")
iserr
대신 iferror
대신 "NUMFILE"의 "SYSTEM"을 사용하여 바이트와 1 :=IF(ISERR(INFO("SYSTEM")),"cba","abc")
그의 답변 대부분을 훔친 것에 대해 @HyperNeutrino에게 사과하면서 (아직 언급 할 평판이 없습니다)
print('acbbca'[1/2>0::2])
print('acbbca'[1/2>0::2])
<1
btw입니다.
<!--
strrev=console.log//--><?=
strrev("abc");
abc
JS와 cba
PHP로 인쇄합니다 .
온라인으로 PHP를 사용해보십시오! (TIO는 HTML 주석을 숨기지 않습니다 ( <!--
... -->
)
<!--
노드 에서는 어떻게 해석됩니까?
--> blah blah
일부 JavaScript 인터프리터에서 유효한 주석입니다.//
try:long;print('abc')
try:cmp;print('abc')
Excel에만 존재하는 함수를 사용한 @TaylorScott에서 영감을 얻어 Google 스프레드 시트에만 존재하는 더 짧은 함수를 발견했습니다. 편리하게 문자열을 반환하도록 설계되었습니다.
=iferror(join(,"cba"),"abc")
작동 원리
Google 시트에 join([arg1], arg2, arg3,...argk)
연결할 것이다 ARG2 > - argk을 임의로 지정된 구분자 사용 ARG1를 . 이 경우 "cba"가 성공적으로 반환됩니다.
Excel에 join
기능 이 없으므로 iferror
문제가 발생하여 "abc"를 반환 함
'c'b'a]$
두 언어 모두 문자 목록을 정의합니다.
CJam에서는 $
정렬이됩니다 abc
.
Gaia에서는 $
목록을 하나의 문자열로 결합 하여을 제공 cba
합니다.
//\
interface a{static void main(String[]s){System.out.print("abc"/*
main(){{puts("cba"/**/);}}
Java 8로 시도하여 "abc"를 생성하십시오.
C로 시도하여 "cba"를 생성하십시오.
설명:
//\
interface a{static void main(String[]s){System.out.print("abc"/*
main(){{puts("cba"/**/);}}
위의 Java 강조 표시 된 코드에서 볼 수 있듯이 첫 번째 줄은 주석으로 인한 주석 //
이고 C 코드는 주석으로 인한 주석 /* ... */
입니다.
interface a{static void main(String[]s){System.out.print("abc");}}
//\
interface a{static void main(String[]s){System.out.print("abc"/*
main(){{puts("cba"/**/);}}
lang-c
Java와 동일한 강조 표시로 인해 C-highlighting을 올바르게 활성화하는 방법을 잘 모르겠습니다 . 그러나 //\
Java 코드 인 다음 행을 주석 처리하여 다음을 수행합니다.
main(){{puts("cba");}}
print('abc'[::int(1/2*4)-1])
파이썬 2에서는 인쇄물을 int(1/2*4)-1
평가 -1
합니다 cba
. - 산화 티타늄
파이썬 3에서는 1
그렇게 프린트를 평가 합니다 abc
. - 산화 티타늄
#include<stdio.h>
main(){puts(sizeof('x')>1?"abc":"cba");}
challenger5 덕분에 78 바이트 .
aschepler 덕분에 58 바이트 .
hvd 덕분에 56 바이트
#ifdef
s를 축소하여 하나를 만들 수 있습니다 . 2)에서 공간을 제거 할 수 있습니다 #include <stdio.h>
. 3) 당신은 변경할 수 있습니다 printf("%s",
로 puts(
. 온라인으로 사용해보십시오!
sizeof('x')>1?"abc":"cba"
트릭이 있습니다.
sizeof
의 피연산자는 괄호가 필요하지 않으며 함수가 아닙니다.
cat("abc")#u@o;o;o(;
R의 경우, cat("abc")
뻔뻔한 의견 남용. Cubix의 경우
c a
t (
" a b c " ) # u
@ o ; o ; o ( ;
. .
. .
"abc"
스택에 a, b ad c를 밀어 넣습니다.)#
c를 증가시키고 스택의 요소 수를 푸시합니다.u
오른쪽으로 U 턴;(
카운트를 제거하고 c를 줄입니다.o;o;o@
출력 CBA 및 종료스택에서 숫자를 푸시합니다
cat(
Cubix에 의해 완전히 무시되는 방식으로 이상하게 기쁘게 생각합니다 .
print('abc'[::-(1/2>0)|1])
print('abc'[::-(1/2>0)|1])
exit
대신 25 바이트 버전 으로 STDERR로 출력합니다.
이것은 기본적으로 print('abc'[::[1,-1][1/2>0]])
골프 와 동일 합니다.
"abc"&&ov
; oo<
이 언어는 Ly가> <>를 기반으로하기 때문에 매우 유사합니다. 그러나 Ly는 2D 실행이 없으며 &
다르게 해석하므로 여기에서 활용했습니다.
두 언어 모두 abc
스택 으로 푸시 하여 시작합니다 .
> <>의 경우 &
명령은 레지스터로 값을 이동합니다. 행에서 두 개는 레지스터로 값을 푸시 한 다음 다시 NOP로 바로 가져갑니다.
Ly의 &
경우 명령이 전체 스택에서 기능을 수행하게하는 수정 자입니다.
o
는 두 언어에 대해 동일한 것을 의미하지만 &
Ly에서 수정 되었으므로 전체 스택을 인쇄하여 출력 abc
합니다. > <>에서는 c
위에서 아래로 인쇄 되므로 출력 만됩니다.
v
Ly의 NOP이며이를 건너 뛰고 바로 ;
실행으로 이동합니다. > <>는 대신 IP 주소를 아래쪽으로 보내는 포인터로 취급합니다.
그런 다음 다른 화살표를 누르면 IP가 왼쪽으로 전송됩니다. 여기서는 두 개의 o
표시, 출력 b
및을 충족시킵니다 a
.
편집 : 바이트를 저장하고 고정> <> 충돌
;
두 번째 줄로 이동하여 바이트를 저장할 수 있습니다 . 또한> <> IP가 랩핑되지 않고 두 번째 줄을 다시 통과하지 않아 오류가 발생한다는 이점이 있습니다.
"abc"&&ooo;
? "abc"를 인쇄 한 후에 만 Ly가 충돌합니다.
"abc"&&o!;o<
충돌을 피하려면 1 바이트의 추가 바이트가 필요합니다.
…CBAžR
인쇄 ABC
05AB1E과 (OP가 허용되었다 말했다) CBA
2sable가 05AB1E하지만 유사 있다는 사실을 이용하여 2sable에서의žR
2sable이 버려진 후 05AB1E에 추가 .
l
btw를 추가하면 됩니다.
이것은 PHP가 '0'
(정수와 같은) 잘못된 것으로 해석하기 때문에 작동 0
하지만 JavaScript는 단순히 비어 있지 않은 문자열이라고 가정합니다.
'0'?alert('cba'):print(abc);
이것은 -r
PHP 에서 실행됩니다 . Javascript에서는 콘솔에 붙여 넣으십시오.
1 바이트 절약 해 주신 @Justin Mariner 에게 감사드립니다 !
"0"
대신에 사용할 수도 있습니다 +![]
: 0
PHP에서는 (거짓)되고 JS에서는 문자열 (거짓)입니다.
+![]?print(abc):alert('cba');
->"0"?alert('cba'):print(abc);
-r
깃발을 사용하여
PHP는보고 die(abc)
주석을 작성하고, 컴파일러는 용서하기 때문에 abc
빈 변수 대신 문자열로 출력 합니다.
Brainf * ck는 지시 문자 만보고 나머지는 주석으로 표시됩니다.
die(abc);#--[----->+<]>---.-.-.
온라인으로 사용해보십시오! (PHP)
온라인으로 사용해보십시오! (뇌물 * ck)
-r
print'abc'.reverse
print
이야 cba
우리가 전화하는거야으로 .reverse
문자열에.
print'abc'.reverse
print
s의 abc
결과와 연결 reverse
에 기본 작품으로 어떤 $_
이는이 비어있는 등 차이가 없습니다.