👤

Am pus numarul 11 sa il ridice la patrat si imi da raspunsul 120? De ce? Cu unele numere merge, cu altele nu?
C++
#include
#include
using namespace std;

int main()
{long int n;
cout<<"n=";
cin>>n;
if (n!=0)
{
n=pow(n,2); //daca aici pun n*=n merge programul, dar nu inteleg dc nu merge cu pow
}
cout< return 0;
}


Răspuns :

Salut. In primul rand functia pow() returneaza un tip de data si anume double, deci ar trebuii sa declari variabila ca fiind double  (double n sau long double, depinde cu ce numere lucrezi). O alta idee este ca poti direct sa afisezi pow() fara a ii se mai atribuii unei variabile. Ar trebuii sa ii pui un cast in fata de exemplu: cout<<(long long)(instructiune);. In al doilea rand mai este o problema cu functia pow(), aceasta cand primeste o valoare mare, de exemplu : 10000 el va afisa 99999999. De asemenea putem evita aceasta problema prin aceasta solutie: round(pow(n ,2)); Aceasta va rotunjii valoarea si va afisa numarul corect. Ti-am lasat solutile de mai sus ca sa stii cum sa-ti rezolvi problemele, in caz ca apar. De asemnea ti-am lasat si un exemplu care iti respecta ideea ta, mai jos. Iti urez succes in continuare!
Vezi imaginea STARBACK