Gollum
NuB
Hi wollt fragen ob jemand von euch ahnung hat wie ich nen algorithmus schreibe um eine wurzel zu ziehen ? also kein standartbefehl aus c sonder über mathematisches näheren !
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion erfordert derzeit den Zugriff auf die Seite über den integrierten Safari-Browser.
int zahl;
int wurzel ;
cin >> zahl
for (int c = 1; c < zahl; c++) {
if( zahl % c == 0) {
if(c*c == zahl)
wurzel = c ; }
}
cout << wurzel ;
}
include <iostream>
using namespace std;
double sqrt(double habenwill)
{
int counter = 0;
double spanne = habenwill;
double grenze = spanne/2;
double istes = spanne*spanne;
while (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;
}
neeee mein Beispiel ist scheisseandres beispiel ist dann auch ineffizient.
bei mir hat man halt mehr kontrolle
genauaber ich habe versucht zu helfen und das zählt-
#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;
}
4 * 4 = 16 1
2 * 2 = 4 2
3 * 3 = 9 3
2 * 2 = 4 4
2.5 * 2.5 = 6.25 5
3 * 3 = 9 6
2.5 * 2.5 = 6.25 7
2.75 * 2.75 = 7.5625 8
3 * 3 = 9 9
2.75 * 2.75 = 7.5625 10
2.875 * 2.875 = 8.26562 11
2.75 * 2.75 = 7.5625 12
2.8125 * 2.8125 = 7.91016 13
2.875 * 2.875 = 8.26562 14
2.8125 * 2.8125 = 7.91016 15
2.84375 * 2.84375 = 8.08691 16
2.8125 * 2.8125 = 7.91016 17
2.82812 * 2.82812 = 7.99829 18
2.84375 * 2.84375 = 8.08691 19
2.82812 * 2.82812 = 7.99829 20
2.83594 * 2.83594 = 8.04254 21
2.82812 * 2.82812 = 7.99829 22
2.83203 * 2.83203 = 8.0204 23
2.82812 * 2.82812 = 7.99829 24
2.83008 * 2.83008 = 8.00934 25
2.82812 * 2.82812 = 7.99829 26
2.8291 * 2.8291 = 8.00382 27
2.82812 * 2.82812 = 7.99829 28
2.82861 * 2.82861 = 8.00105 29
2.82812 * 2.82812 = 7.99829 30
2.82837 * 2.82837 = 7.99967 31
2.82861 * 2.82861 = 8.00105 32
2.82837 * 2.82837 = 7.99967 33
2.82849 * 2.82849 = 8.00036 34
2.82837 * 2.82837 = 7.99967 35
2.82843 * 2.82843 = 8.00002 36
2.82837 * 2.82837 = 7.99967 37
2.8284 * 2.8284 = 7.99984 38
2.82843 * 2.82843 = 8.00002 39
2.8284 * 2.8284 = 7.99984 40
2.82841 * 2.82841 = 7.99993 41
2.82843 * 2.82843 = 8.00002 42
2.82841 * 2.82841 = 7.99993 43
2.82842 * 2.82842 = 7.99997 44
2.82843 * 2.82843 = 8.00002 45
2.82842 * 2.82842 = 7.99997 46
2.82843 * 2.82843 = 8 47
$x = pow($y,0.5);
Original geschrieben von FUSEL
denkfehler 0 punkte setzten 6.