sqrt(x)
oder allgemein pow(x, 1./2)
oder pow(x, 1./3)
Zum Beispiel:
%Vor%Bearbeiten: oder allgemein:
%Vor%Nein, es gibt keine standardmäßigen c- oder c ++ - Funktionen, um zu überprüfen, ob eine ganze Zahl ein perfektes Quadrat oder ein perfekter Würfel ist.
Wenn Sie möchten, dass es schnell ist und vermeiden Sie die float / double-Routinen, die in den meisten Antworten erwähnt werden, dann kodieren Sie eine binäre Suche nur mit ganzen Zahlen. Wenn Sie ein n mit n ^ 2 & lt; m & lt; (n + 1) ^ 2, dann ist m kein perfektes Quadrat. Wenn m ein perfektes Quadrat ist, dann finden Sie ein n mit n ^ 2 = m. Das Problem wird diskutiert hier
Zum Identifizieren von Quadraten habe ich diesen Algorithmus in Java versucht. Mit wenig Syntaxunterschied können Sie es auch in C ++ tun. Die Logik ist, dass die Differenz zwischen jeweils zwei aufeinanderfolgenden perfekten Quadraten um 2 zunimmt. Diff (1,4) = 3, Diff (4,9) = 5, Diff (9,16) = 7, Diff (16,25 ) = 9 ..... geht weiter. Wir können dieses Phänomen verwenden, um die perfekten Quadrate zu identifizieren. Java-Code ist,
%Vor%Um die Identifizierung von Quadraten zu beschleunigen, können wir ein anderes Phänomen verwenden, die rekursive Summe der Ziffern der perfekten Quadrate ist immer 1,4,7 oder 9. So kann ein viel schneller Code sein ...
%Vor%Für ein perfektes Quadrat können Sie auch Folgendes tun:
%Vor%Für einen perfekten Würfel können Sie:
%Vor%Hoffe, das hilft.
Tags und Links algorithm math c++ integer integer-arithmetic