/*
Se voglio trovare la radice quadrata di 7, posso procedere per passi successivi:
2 č il pių grande numero intero tale che 2^2 <=7 e 3 il pių piccolo intero tale che 3^3>=7.
2.6 č il pių grande numero con un solo decimale tale che 2.6^2 <=7 e
2.7 il pių piccolo numero con un solo decimale tale che 3^3>=7.
Calcolare la radice di un numero dato N fino al 12-esimo decimale usando questa semplice tecnica.
*/
import javax.swing.JOptionPane;
class ExArray_08 {
public static void main(String[] args) {
int N = Integer.parseInt(JOptionPane.showInputDialog("Radice quadrata di?"));
double valore = 1.0; //valore della radice da formare
double incremento = 10.0; //incrementi successivi
int decimali = -1; //contatore di cifre decimali
do {
//sposta di una posizione decimale l'incremento da dare a "valore"
incremento /= 10; //1; 0.1; 0.01; 0.001; ecc.
decimali++; //0; 1; 2; 3; ecc.
//trova il quadrato pių grande...
do {
valore += incremento;
}
while ((valore*valore)<N);
//se non č il numero cercato diminuisci dell'ultimo incremento
if ((valore*valore)!=N) valore -= incremento;
}
//esci quando il numero č esatto oppure quando hai calcolato oltre gli 11 decimali
while ((valore*valore != N) && (decimali<12));
System.out.println("La radice quadrata di " + N + " e': " + valore);
System.exit(0);
}
}