Perfektes Quadrat und perfekter Würfel

7

Gibt es eine vordefinierte Funktion in C ++, um zu überprüfen, ob die Zahl ein Quadrat einer beliebigen Zahl und die gleiche für den Würfel ist.

    
d3vdpro 11.10.2009, 05:35
quelle

7 Antworten

13

Nein, aber es ist einfach, einen zu schreiben:

%Vor%     
Chris Jester-Young 11.10.2009, 05:43
quelle
6

sqrt(x) oder allgemein pow(x, 1./2) oder pow(x, 1./3)

Zum Beispiel:

%Vor%

Bearbeiten: oder allgemein:

%Vor%     
Jesse Beder 11.10.2009 05:41
quelle
1

Versuchen Sie Folgendes:

%Vor%     
nikoo28 11.11.2012 12:17
quelle
1

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

    
Douglas B. Staple 23.03.2013 04:41
quelle
0

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%     
Deepeshkumar 19.05.2014 09:22
quelle
0

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.

    
Prashant Shubham 22.08.2016 18:51
quelle
0

Wir könnten die eingebaute Funktion truc verwenden -

%Vor%     
PrinceGautham 08.09.2017 14:38
quelle