so hab ich das mal gemacht
Code:
#include <iostream>
using namespace std;
const double epsilon = 1e-5;
bool isEqual(double a, double b)
{
return abs(a - b) < epsilon;
}
double sqrt(double habenwill)
{
int counter = 0;
double spanne = habenwill;
double grenze = spanne/2;
double istes = spanne*spanne;
while (!isEqual(istes,habenwill))
{
if (istes < habenwill)
{
spanne = spanne + grenze;
}
else
{
spanne = spanne - grenze;
grenze /= 2;
}
counter++;
istes = spanne*spanne;
cout << spanne << " * " << spanne << " = " << istes << " " << counter << endl;
}
return spanne;
}
int main (void)
{
double suche;
cin >> suche;
cout << endl << sqrt(suche) << endl;
return 0;
}
wie schon gesagt wurde, Fliesskommazahlen musste auf eine bestimmte länge 'beschneiden' sonst funzt es nicht.
Lesezeichen