#include <iostream>
using namespace std;
int main() {
int val;
cout << "Enter the number: ";
cin >> val;
if( val< 0) {
cout<< "According to my maths its not possible." << endl;
} else {
float low = 0, high = val;
float mid = (low + high)/2;
int c = 0;
while (c != 1) {
if(mid * mid = val) {
cout << "Square root is: " << mid <<endl;
c = 1;
} else {
if(mid * mid > val) {
high = mid;
mid = (low + high)/2;
} else {
low = mid;
mid = (low + high)/2;
}
}
}
}
return 0;
}
Scrivi il codice per trovare la radice quadrata usando il metodo di bisection in C ++? [Chiuso
-
29-07-2022 - |
Domanda
La bisection è per quanto ne so restringere la ricerca e raggiungere il valore specifico in intervallo. Per favore, dammi un esempio di come creare un codice generico per trovare una radice quadrata. Il modo in cui penso è prendere tre variabili basse, medio, alte. High = UserInput, Low = 0, Mid (Low + High) /2, il problema è come modificare i valori.
Soluzione
Altri suggerimenti
Diciamo che stiamo cercando sqrt(N)
Come descritto qui, devi trovare la media di bassa e alta, se quadrati di media è maggiore di N
, cambiamo il valore elevato con la media che abbiamo appena trovato, se è inferiore a N
, cambiamo il valore basso con la media. E ripetiamo i passaggi tutte le volte per soddisfare la precisione richiesta.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow