Wie Sie vielleicht wissen, gibt es eine mathematische Tatsache, dass Sie, wenn Sie alle natürlichen Zahlen addieren , am Ende ... -1/12 haben (siehe Wikipedia hier) .
Natürlich ist dies ein sehr seltsames Ergebnis und kann nicht durch einfaches Hinzufügen einer Zahl gefolgt von einer anderen, sondern durch einige spezielle mathematische Tricks erzielt werden.
Ihre Aufgabe ist es jedoch, ein Programm zu schreiben, das so aussieht, als würde es versuchen, alle natürlichen Zahlen zu addieren. Wenn Sie es jedoch ausführen, wird -1/12 zurückgegeben.
Im Pseudocode könnte es so aussehen:
result = 0;
counter = 1;
while(true) {
result += counter;
counter ++;
}
println(result);
Sie können dies nach Belieben tun - Sie können einen Pufferüberlauf ausnutzen, mit Fehlern spielen, während eine Variable zu groß wird, oder einfach das Entscheidende im Code auf clevere Weise verbergen. Die einzige Bedingung ist, dass der Code auf den ersten Blick so aussieht, als würde er versuchen, alle natürlichen Zahlen zu addieren. Wenn er ausgeführt wird, wird -1/12 zurückgegeben (in jedem Format kann es sich um Dezimalzahlen, Binärzahlen, Text- und ASCII-Zahlen handeln).
Der Code kann natürlich viel mehr enthalten als oben gezeigt, aber es sollte klar genug sein, um den Leser zum Narren zu halten.
Dies ist ein Beliebtheitswettbewerb - stimmen Sie für die cleverste Idee ab!