Informatică, întrebare adresată de roatiscristian625, 8 ani în urmă

De ce primesc doar 90 de puncte?
#178 PatratPerfect de pe PbInfo
Cerinţa
Să se scrie un program care verifică dacă un număr natural citit de la tastatură este pătrat perfect.

Date de intrare
Programul citește de la tastatură numărul natural n.

Date de ieşire
Programul afișează pe ecran mesajul da, dacă n este pătrat perfect, respectiv nu în caz contrar.

Restricţii şi precizări
n < 2.000.000.000


#include
#include

using namespace std;

int main()
{
float n;
cin>>n;
if (sqrt(n)==(int)sqrt(n))
cout<<"da";
else
cout<<"nu";
return 0;
}

Răspunsuri la întrebare

Răspuns de biancacristea01
1

in loc de (int)sqrt(n) pune (long)sqrt(n) pentru ca nr este destul de mare

daca tot nu primesti punctaj maxim poti pune conditia:

if(sqrt(n)*sqrt(n)==floor(n))cout<<"da";


roatiscristian625: si cu long tot 90 imi da
biancacristea01: atunci uite cum am facut eu pe pbinfo si am primit 100 {int a,i; cin>>a;i=sqrt(a); if(i*i==a)cout<<"da"; else cout<<"nu"; return 0;} si la biblioteci sa nu uiti sa adaugi #include
biancacristea01: < cmath >
Răspuns de pmarian98
0

Răspuns:

#include<cmath>

#include <iostream>

using namespace std;

int main(){

int n;

cin>>n;

if((int)sqrt(n)==(float)sqrt(n))

   cout<<"da";

else

   cout<<"nu";

}

Explicație:

Alte întrebări interesante