Mai mult
Pătrat perfect și cub perfect
Există vreo funcție predefinită în c++ pentru a verifica dacă numărul este pătratul oricărui număr și la fel pentru cub...
8
7
Nu, dar este ușor de scris unul:
sqrt(x)
, sau în general,pow(x, 1./2)
saupow(x, 1./3)
.De exemplu:
Nu, nu există funcții standard c sau c++ pentru a verifica dacă un întreg este un pătrat perfect sau un cub perfect.
Dacă doriți să fie rapid și să evitați utilizarea rutinelor float/double menționate în majoritatea răspunsurilor, atunci codificați o căutare binară folosind numai numere întregi. Dacă puteți găsi un n cu n^2 < m < (n+1)^2, atunci m nu este un pătrat perfect. Dacă m este un pătrat perfect, atunci veți găsi un n cu n^2=m. Problema este discutată aici
Încearcă asta:
Pentru identificarea pătratelor am încercat acest algoritm în java. Cu o mică diferență de sintaxă, îl puteți face și în c++. Logica este că diferența dintre două pătrate perfecte consecutive crește cu 2. Diff(1,4)=3 , Diff(4,9)=5 , Diff(9,16)= 7 , Diff(16,25)= 9..... și așa mai departe. Putem folosi acest fenomen pentru a identifica pătratele perfecte. Codul Java este,
Pentru a face identificarea pătratelor mai rapidă putem folosi un alt fenomen, suma recursivă a cifrelor pătratelor perfecte este întotdeauna 1,4,7 sau 9. Deci, un cod mult mai rapid poate fi...
Pentru pătrat perfect puteți face, de asemenea,:
Pentru cubul perfect se poate:
Sper să vă fie de ajutor.
Am putea folosi funcția truc din dotare -