Sa se redacteze un program care citeste de la tastatura un numar si determina daca acesta este patrat perfect (C++)
Răspunsuri la întrebare
Răspuns de
1
Raspunsul de jos NU ARE LOGICA! Nu te lua dupa el!
Aicie o rezolvare rapida care poate fi optimizata.Se bazeaza pe taierea cifrelor de dupa virgula radicalului.
#include<cmath>
int main(){
int n;
cin>>n;
if(sqrt(n)==(int)sqrt(n)){
cout<<"E p.p";
}else{
cout<<"NU e p.p";
}
}
Daca n e p.p atunci se poate scrie n=k*k . Deci aplicam radical din n pentru a-l lua pe K. Daca n nu e patrat perfect atunci radicalul sau va avea virgula. Asa ca doar verificam daca radicalul sau are virgula. ( (int) transforma orice numar in intreg deci ii taie virgula. Deci daca sqrt(n) este egal cu (int)sqrt(n) inseamna ca radicalul nu are virgula si deci n e p.p)
Aicie o rezolvare rapida care poate fi optimizata.Se bazeaza pe taierea cifrelor de dupa virgula radicalului.
#include<cmath>
int main(){
int n;
cin>>n;
if(sqrt(n)==(int)sqrt(n)){
cout<<"E p.p";
}else{
cout<<"NU e p.p";
}
}
Daca n e p.p atunci se poate scrie n=k*k . Deci aplicam radical din n pentru a-l lua pe K. Daca n nu e patrat perfect atunci radicalul sau va avea virgula. Asa ca doar verificam daca radicalul sau are virgula. ( (int) transforma orice numar in intreg deci ii taie virgula. Deci daca sqrt(n) este egal cu (int)sqrt(n) inseamna ca radicalul nu are virgula si deci n e p.p)
artur99:
Convertește tipul de date. Adică transformă număr cu virgulă în număr fără virgulă.
Răspuns de
1
#include <iostream>
#include<cmath>
using namespace std;
int main(){ float n; cin>>n; if(sqrt(n)==(int)(sqrt(n))) cout<<"e patrat perfect"; else cout<<"nu e ";}
#include<cmath>
using namespace std;
int main(){ float n; cin>>n; if(sqrt(n)==(int)(sqrt(n))) cout<<"e patrat perfect"; else cout<<"nu e ";}
Alte întrebări interesante
Biologie,
8 ani în urmă
Fizică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă