이것은 코드 크로스 워드에 대한 동반 질문입니다 . 강도 답변은 여기로 이동하십시오.
강도를 어디에 두어야합니까?를 참조하십시오 . 메타 정보 용.
이것은 코드 크로스 워드에 대한 동반 질문입니다 . 강도 답변은 여기로 이동하십시오.
강도를 어디에 두어야합니까?를 참조하십시오 . 메타 정보 용.
답변:
정의되지 않은 동작을 호출하여 7-Down에서 약간의 퍼지가 필요했습니다. es1024는 이러한 UB 사용이 의도 된 솔루션임을 나타냅니다. 그래도 대부분의 사람들의 컴퓨터에서 작동합니다. 내가 같은 원하는 결과를 달성 다양한 표현 해낸 -1 << 30
, 3 << 30
, 6 << 29
, 및 ~(~0U/4)
있지만 그들 모두가 불가능 날 5의 맞은 편에 도착 할 수있었습니다. 따라서 왼쪽 시프트의 크기를 결정하는 데 최하위 5 비트 만 사용되는 인텔 아키텍처 별 속성을 사용했습니다. 그것이 될 필요가 있음을주의 ~_
하지 ~1
그래서 양에 의해 이동하는 것을 컴파일 타임 상수가 아닙니다. 다음 코드를 사용하여 표현식을 테스트했습니다.
#define T(X) _ = c; _ = X; printf("%d\n", _);
z[4] = {9};
int main(c)
{
int _;
T("01"[0])
T(-8)
T(-2)
T(11<-328111)
T(+2+71)
T(9+0)
T(0**z)
T(5;)
T(0<-000)
T(2+~3)
T(!91)
T(!_)
T(2**z)
T('_T;')
T("11"?5*9:2)
T(15<<9)
T(0+22)
T(-211*0-97;)
T(-17*0)
T(3+0<<~_)
T(8+000)
T(+0)
T(42)
T(+!z)
T(~_)
}
#define T
솔루션에 필요한 구성 요소로 착각했습니다 . 하지만 M-across가 왜 효과가 있습니까? 여러 문자 상수를 정의하면 바이트 값이 연결됩니까? 그렇다면 오늘 새로운 것을 배웠습니다. :)
int
이므로 정보 손실없이 최대 4 바이트를 넣을 수 있습니다.
(이 솔루션은 실제로 몇 개의 공간이 필요하므로 교수님이 찾고있는 것이 아닙니다.)
#K###I#'32
#HDJ*s\ ##
2##2#`#`#-
4Zm*`##L#3
m##6##]`'
f####e#`#'
`#0#'d1+eu
## #!####9
## '{;'"'m
C5(#}####q
정말 재미있었습니다. 있습니다 #
아래는 6
실제로 코드가 아닌 어두운 세포이다. 이것을 통해 봅시다 :
힌트 2 : [[4 3]]
. 내가 시도 4Z]]`
하거나 비슷한 것을 고집했기 때문에 이것은 까다로운 것 중 하나였습니다 . m*
배열이 아닌 물건에 Cartesian 제품 을 사용할 수 있으며 배열이 만들어집니다. 그래서 여기 있습니다 :
4Zm*`
힌트 4 : 24717
. 그 때까지는 나는이에 도착 H
, J
, s
후행 공간은 이미 그 자리에 있었다. 은 H
아마 단지를 재사용 할 수 있음을 멀리 준 17
과 할 \
말. 는 J
를 밀어 19
하고 247 == 13 * 19
그래서 :
HDJ*s\
7 힌트 : 32
. 이 작업을 수행하는 방법은 무리가있다 : Y5#
, 3 2
, ZY
, YZ\
, 4(2
, 2)2
, '32
. 나는 캐릭터로 시작하는 것이 7 다운으로 유망한 것처럼 보였고 그것이 옳은 것으로 나타났기 때문에 나는 마지막으로 갔다.
힌트 8 : E
. 나는 이미 'd
거기에 도착했을 때를 가지고 있었기 때문에 'd1+eu
, 'deu1+
또는 내가 사용했던 변형 )
과 공백 대신에 공간을 사용했습니다 1+
(CJam이 아닌 사람들에게는 d
문자를 가져 와서 순서대로 대소 문자를 구분합니다) . 그러나 u
마지막 열에서 A-down에 유용하게 보입니다. 그래서 나는 그중 첫 번째를 선택했습니다. 결국 'd) eu
, 역시 효과가 있었을 것입니다.
힌트 9 : ""
. 글쎄, 이것은 "빈 문자열, 문자열 표현, 공간 밀기"여야했습니다. 그러나 7-down의 문자열 표현에는`가 필요했고 A-down의 공백도 유용 해 보였으므로
]`'
참고 ]
또한 중 하나를되었을 수 있습니다 LMOQR
.
힌트 B : "m
. 나는 단지 이것과 나머지를 맞출 필요가 있었지만 중요한 캐릭터는 거의 없었습니다. 나는 이미 가지고 {
와를 m
. 따라서 블록을 사용하는 대신 {
문자 로 바꾸어 버린 다음 필요한 두 문자를 밀어 넣었습니다.
'{;'"'m
힌트 D : 124
. 나는 이것을 C-down과 함께 해결했다. 그래서 나는 12, 5를 밀고 후자를 줄입니다.
C5(
1 힌트 : [2 2 2 3]
. 그것은 하나가되지 않기 때문에 너무나도 의심스러운 것처럼 보입니다. :)
24mf`
힌트 3 : 3010936384
. 이것을 고려하면 실제로 38 6 임을 보여줍니다 . 유일한 질문은 38
2-across를 준수 하는 방법이었습니다 . 결국 나는 *
3 위를 필요로 했으므로 두 배가 19
되었습니다.
J2*6#
힌트 5 : 2017
. 그런 큰 숫자에 대한 두 문자? 내장 두 자리 변수를 사용하십시오.
KH
힌트 6 : "18"
. 나는 3 자로 이것을 할 수있는 유일한 방법이 있다고 생각합니다. 내장 18을 사용하여 문자열로 변환 한 다음 문자열 표현으로 변환하십시오.
Is`
7 힌트 : ' "\"\""
. 아마도 퍼즐의 가장 어려운 부분 일 것입니다. 특히 "\"\""
3 자만 입력하면됩니다. 비결은 빈 문자열의 문자열 표현을 두 번 얻는 것입니다. 그 결과는 다음과 같습니다.
' `L``+
은 +
필요하지 않지만 8에서 필요로했다.
힌트 8 : !{}
. 블록은 코드에 들어가야했기 때문에에 대한 두 문자 만 남았습니다 !
.
'!{}
힌트 A : -3u3
. 와 u
, 내가 넣어 시작 8 전역에서 장소 -3
와 3
다른 힌트가 그들에 대해 신경 쓰지 모서리한다. 그러나 나는 m
바닥에 필요했습니다 . 3
와 함께하는 여러 가지 방법이 있다고 생각 _m_
하지만 가장 간단한 방법은 9의 제곱근을 취하는 것입니다.
-3 'u9mq
힌트 C : -1
. 나는 이미 감소를 보였으므로 0
다른 사람이 신경 쓰지 않는 곳에 두었습니다 .
0 (
힌트 E : Stack: ""
. 가장 간단한 것이 었습니다. 디버거를 호출하십시오.
ed
__________
|{}=51###6#|
|a##.#I-9<4|
|:##-##"#<#|
|5+Math.PI#|
|}##+##.#+#|
|["9"+0][0]|
|'##p##"###|
|a+-a#a=-10|
|'##c##=###|
|]##"\x48I"|
¯¯¯¯¯¯¯¯¯¯
5+Math.PI
또는이다 Math.PI+5
; 그러나 후자는 'M'과 'h'가 다른 표현으로 넘어갈 가능성이 거의 없었습니다."\x48I"
.xxxa
0으로 평가되므로 -a + a? a + -a? 3 +-? a+-a
1dn에서 문자열의 문자처럼 보이는 것이 나에게 가장 좋았습니다.{x:5}xxa'x
있습니다. 반환 된 값은 5이므로 객체에서 가져와야하므로 {x:5}['a']
최종 누락 문자도 다음과 같습니다.{a:5}['a']
t={}=51
했으며 효과가있었습니다. 몰랐어요!5xxax"pac"
=> "2pac"입니다. 이이어야 5-a+"pac"
두 번째 문자가 있어야한다, 그래서 어떻게 든, '.' 부동 소수점 리터럴.[xx"xxxx]
"90"을 반환합니다. 따라서 이것은 값을 빼낸 배열 리터럴이어야합니다. 하나의 가치를위한 여지가 있으므로 우리는 가지고 있습니다 [xx"xx][0]
. 거기에 두 개의 줄을 넣을 공간이 없지만 맞 "9"+0
거나 9+"0"
맞습니다.6<<I
답으로 밝혀졌고 끝에 +0을 남겨 두었습니다.I-I<4
, I-6<4
, 등)-x..]xxx4
. ".."가 저를 던졌습니다. 합법적 인 구문이 될 수있는 몇 가지 방법이 있으며 ES4가 의도 한 것인지 묻습니다. 이것이 버려진 사양의 이상한 특징입니까? 그러나 나는 이것이 붉은 청어 인 것을 보았다. -""
NaN입니다. 따라서 NaN과 -"..]"xx4
비교하여 false를 반환해야합니다. '=='는 할 것이지만 확인을 위해 마지막 대답을 봐야합니다 ...=-10
. 솔직히 나는 이전 버전의 9dn을 보았고, 그것이 =top
Window를 되 찾을 수 있음을 깨달았습니다 . 할당 된 변수는 a 또는 I 일 수 있으며 중요하지 않습니다.까다로운 퍼즐!
모든 긴 부동 소수점 식에 대해 강제로 파이썬 수학 식을 생성하고 평가하는 C ++ 프로그램을 만들었습니다. 모든 숫자가 부동 소수점이고 +,-, *, /, //, ** 및 ~ 연산자 만 지원한다고 가정합니다. a**9*27%b
해시를 제외 하고 5자를 초과하는 모든 단서를 얻는 데 사용했습니다 . 6 개 이하의 블랭크를 사용하면 몇 초 내에 완료되고 7 분 동안 약간의 대기가 있습니다.
나는 14 공간이 있기 때문에 나는 이것을 잘 골랐다.
이 테스트 스크립트는
g=4;
o=magic(3);
D=@disp;
D(max([ 2]));
D( i^3);
D(o^0);
D(6 -7+eye );
D((i));
D(.1 ^5* g );
D(~2);
D(diag(~o) );
D(asin (1)*i);
D((93+7) +~g);
D( 10e15);
D(2*ones (2));
D(02 ^ 9 );
D(-i );
D(~o);
다음과 같은 출력을 생성합니다.
2
0 - 1.0000i
1 0 0
0 1 0
0 0 1
0
0 + 1.0000i
4.0000e-05
0
0
0
0
0 + 1.5708i
100
1.0000e+16
2 2
2 2
512
0 - 1.0000i
0 0 0
0 0 0
0 0 0