자바 스크립트 (모든 테스트 사례에서 작동하도록 업데이트 됨)
잘 알려진 사실은 실제로 4 개가 6
있지만, 다른 하나는 배신 당하고 다른 하나는 숫자의 세계 숫자 에서 근절하기 위해 코드 형식으로 변형되었습니다 . 그 배신자 여섯은 다음과 같습니다.
x=prompt(''+
'Enter number');
alert( ( (~x[
'ind'+
'exOf']('666')))?(x
.replace(/666(.*)$/,
function (mat,g){
return '667'+g
['re'+ 'place'
](/./g,0)})):((+x+
1+'').replace(
666,667)));
여기에 설명이 있습니다. 첫째, 코드를 아름답게과 같은 쓸모없는 물건을 제거 ''+'string'
하고 ((code))
:
x = prompt('Enter number');
alert(
~x['indexOf']('666')
?
x.replace(/666(.*)$/, function(mat,g) {
return '667' + g['replace'](/./g,0)
})
:
(+x+1+'').replace(666, 667)
);
이상한 표기법 (예 : ~indexOf
및 ['replace']
)을보다 일반적인 표기법으로 변환 합니다.
x = prompt('Enter number');
alert(
x.indexOf('666') > -1
?
x.replace(/666(.*)$/, function(mat, g) {
return '667' + g.replace(/./g, 0)
})
:
((parseInt(x) + 1) + '').replace(666, 667)
);
그리고 이제 알고리즘이 다음과 같이 진행됨을 이해하십시오.
입력에 이미 666이 있다면
- 667으로 교체하십시오.
- 그 뒤에 모든 숫자를 0으로 바꿉니다.
그밖에,
- 숫자에 1을 더하십시오.
- 참고 : 이제 문자열 끝에 666, 666 또는 끝으로 0이있는 666이없는 것으로 보장됩니다 ( "수동"추가시 "운반"생각).
- 666이 있으면 667으로 바꾸십시오.
이전 버전 (작동하지 않음 666666666
) :
s='Enter number';x
=prompt( ''+
s);x=+x+
(-~![]);
x=(''+x).replace('666',
666+([][ +[]]+[])
[+[]]['l ength'[
'repla'+ 'ce'](
/ /g,'')]);alert(x)
이것을 이해하려면 먼저 그것을 아름답게하십시오.
s = 'Enter number';
x = prompt('' + s);
x = +x + (-~![]);
x = ('' + x).replace('666',666+([][+[]]+[])[+[]]['l ength'['repla'+'ce'](/ /g,'')]);
alert(x);
이제 같은 쓸모없는 것들을 제거 할 수 '' + string
와 'str' + 'ing'
, 불필요한 제거 s
변수를, 그리고 같은 불확실성 변경 -~![]
에 1
:
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666+"undefined"[0]['l ength'['replace'](/ /g,'')]);
alert(x);
'l ength'['replace'](/ /g,'')
단순히 "length"
:
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666+"undefined"[0].length);
alert(x);
그리고 "undefined"[0]
이다 "u"
,하고 "u".length
있습니다 1
:
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666 + 1);
alert(x);
이제 끝났습니다! 이제 이해하기 쉬워야합니다.