JavaScript (aktualisiert für alle Testfälle)
Die wenig bekannte Wahrheit ist, dass es tatsächlich vier 6s gibt, von denen jedoch eines die anderen verraten und in Codeform polymorphisiert hat, um sie aus den Ziffern der Welt auszurotten . Hier ist die verräterische Sechs:
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)));
Hier ist eine Erklärung. Verschönern Sie zuerst den Code und entfernen Sie unnötige Dinge wie ''+'string'und ((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)
);
Konvertieren Sie seltsame Notationen (wie ~indexOfund ['replace']) in häufigere:
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)
);
Und jetzt verstehe einfach, dass der Algorithmus so abläuft:
Alte Version (funktioniert nicht für 666666666) :
s='Enter number';x
=prompt( ''+
s);x=+x+
(-~![]);
x=(''+x).replace('666',
666+([][ +[]]+[])
[+[]]['l ength'[
'repla'+ 'ce'](
/ /g,'')]);alert(x)
Um dies zu verstehen, verschönern wir es zuerst:
s = 'Enter number';
x = prompt('' + s);
x = +x + (-~![]);
x = ('' + x).replace('666',666+([][+[]]+[])[+[]]['l ength'['repla'+'ce'](/ /g,'')]);
alert(x);
Jetzt entfernen wir nutzlose Dinge wie '' + stringund 'str' + 'ing', entfernen die unnötige sVariable und ändern die Verrücktheit -~![]in 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,'')ist einfach "length":
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666+"undefined"[0].length);
alert(x);
Und "undefined"[0]ist "u"und "u".lengthist 1:
x = prompt('Enter number');
x = +x + 1;
x = ('' + x).replace('666', 666 + 1);
alert(x);
Jetzt sind wir fertig! Es sollte jetzt ziemlich einfach zu verstehen sein.