Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

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 antonii
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)

artur99: Convertește tipul de date. Adică transformă număr cu virgulă în număr fără virgulă.
artur99: (int)(3.5), de exemplu, e 3 (se șterge tot ce e după virgulă)
artur99: Cred că da...
artur99: Dacă mai ai de rezolvat o problemă, poți posta pe site.
artur99: Aah, ok! :D
artur99: Dar cred că mai bine întrebi pe Antonii, se pricepe mai bine decât mine...
Răspuns de Davidpiscot
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 ";}
Alte întrebări interesante