Ihre Aufgabe ist es, die Quadratwurzel einer positiven Ganzzahl zu berechnen, ohne mathematische Operatoren zum Ändern der Zahl zu verwenden, z.
- Variable setzen (zB squareRoot = 5)
- Zusatz (A + B)
- Subtraktion (AB)
- Multiplikation (A * B)
- Abteilung (A / B)
- Quadrat-, Würfel-, vierte usw. Wurzeln
- Exponenten
Vergleichsoperatoren (wie <,>, == usw.) werden für die Zwecke dieser Frage nicht als "mathematische Operatoren" betrachtet und sind zulässig, solange sie den Wert einer Variablen nicht ändern.
Der einzige Operator, den Sie verwenden können, ist ++. Folgende Ausnahmen bestehen:
- Wenn Sie möchten, können Sie eine Variable initialisieren, indem Sie sie auf 0 setzen.
- Wenn Ihre Sprache die ++ - Syntax nicht enthält, können Sie eine äquivalente Syntax verwenden, z. B. foo + = 1 oder foo = foo + 1
- Die Quadratwurzel sollte mit mindestens 6 Stellen nach der Dezimalstelle (der Hunderttausenderstelle) berechnet und als ganze Zahl der Dezimalstellen ausgegeben werden (z. B. wenn ich 2 eingebe, könnte dies je nach Rundung 14142135624 oder 1414213 lauten). . Auf- oder Abrunden ist nicht wichtig.
Benutzerdefinierte Funktionen sind nicht erlaubt. Außerdem ist das Simulieren von Funktionen mit goto nicht erlaubt.
Ich bin gespannt, was alle einreichen! Viel Spaß beim Codieren!
KLÄRUNG
Stellen Sie sicher, dass diese Zahl eine positive ganze Zahl ist. Sie können gerne Code erstellen, der eine beliebige Zahl enthält, dies ist jedoch nicht erforderlich.
ERKLÄRUNG 2
Stellen Sie klar, dass Vergleichsoperatoren zulässig sind.
ERKLÄRUNG 3
Addition, Subtraktion, Multiplikation, Division und Funktionen Änderungsnummern sind nicht erlaubt überhaupt , und zwar unabhängig davon , ob sie zu einer Variablen gespeichert werden oder nicht. Es tut mir leid, dass dies ein paar vorhandene Antworten ungültig macht, aber ich wollte diese Gruppe von Operatoren mit "Nummer ändern" definieren, um Trollantworten zu verhindern (z. B. ich habe gerade die Funktion sqrt () verwendet, Sie haben nur das Hinzufügen verboten, Multiplikation, Division und Subtraktion). Entschuldigung für die Verwirrung.
ERKLÄRUNG 4
Stellen Sie sicher, dass wir mindestens 5 Ziffern benötigen. 10 Ziffern führten dazu, dass der Code lange Zeit ausgeführt wurde.
while r*r<n*10e20:r+=1
- ziemlich trivial. Sie können auch in Betracht ziehen, die erforderliche Ausgabe auf etwa 10 ^ 8 zu reduzieren. Erstens, weil 10 ^ 10 größer als 2 ^ 31 ist, und zweitens, weil es eine Weile dauern wird, bis das Hoch erhöht wird.