001    package de.hska.info1.suchen;
002    
003    /**
004     * Lösung zur Übungsaufgabe in der Rechnerübung
005     * (das Aufgabenblatt mit dieser Aufgabe wird nicht
006     * immer behandelt).
007     * 
008     * @author Christian Pape
009     */
010    public class Quadratwurzel {
011    
012            public static int anzahlAufrufe  = 0;
013            
014            public double wurzelZiehen(double z, double l,
015                                                                    double r) {
016                    anzahlAufrufe++;
017                    double wurzel = (l + r) / 2.0;
018                    if ( Math.abs(wurzel * wurzel - z) < 0.00001 ) {
019                            return wurzel;
020                    } else if ( wurzel * wurzel < z ) {
021                            return wurzelZiehen(z, wurzel, r);
022                    } else {
023                            return wurzelZiehen(z, l, wurzel);
024                    }
025            }
026    }