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

Cineva care ma poate ajuta?#2928 pe pbinfo

Cerința

Se dă numărul real n. Calculați n−−√ cu 8 zecimale exacte.


Date de intrare

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


Date de ieșire

Programul va afișa pe ecran n−−√ cu 8 zecimale exacte.


Restricții și precizări

Dacă numărul citit este negativ se calculează ca pentru un număr pozitiv și se afișează i după el.

1 ≤ nrcif(n)+'.' ≤ 100.001

Exemplul 1:

Intrare


26

Ieșire


5.09901951

Exemplul 2:

Intrare


-25

Ieșire


5.00000000i


boiustef: uauuu cum extragi rădăcina pătrată din aşa număr mare... cu atâtea cifre...???
Laker: nici eu nu stiu, d-aia am ales sa postez aici sperand ca o are cineva rezolvata.
boiustef: era la mate un algoritm special de extragere manuală a rădăcinii pătrate. Tr. de căutat cum funcţionează. E clar că aşa număr trebuie de citit ca un sir de caractere...

Răspunsuri la întrebare

Răspuns de CiprianOlaru
0

Răspuns:

Explicație:

#include <iostream>

#include <cmath>

#include <iomanip>

using namespace std;

int main() {

   int n;

   cin >> n;

   cout << setprecision(9) << sqrt(n);

   return 0;

}


Laker: nu e bine:) 5 puncte
CiprianOlaru: #include
#include
#include
using namespace std;

int main() {
double n;
cin >> n;
if ((int)sqrt(n) == sqrt(n))
cout << sqrt(n) << ".00000000";
else
cout << setprecision(9) << sqrt(n);
return 0;
}
CiprianOlaru: #include
#include
#include
using namespace std;

int main() {
int n;
cin >> n;
if (n < 0) {
n *= -1;
if ((int)sqrt(n) == sqrt(n))
cout << sqrt(n) << ".00000000i";
else
cout << setprecision(9) << sqrt(n) << "i";
} else {
if ((int)sqrt(n) == sqrt(n))
cout << sqrt(n) << ".00000000";
else
cout << setprecision(9) << sqrt(n);
}
return 0;
}
CiprianOlaru: Ultima s-ar putea sa fie corecta... Daca nu e... nu e:)
Laker: eroare de compilare:)
Laker: 25 de punte
Alte întrebări interesante