#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;
}
¿Escribe código para encontrar el método de bisección en C ++? [cerrado
-
29-07-2022 - |
Pregunta
La bisección es hasta donde yo sé, reduce su búsqueda y alcanza el valor específico en el intervalo. Por favor, dame una muestra de eso cómo hacer un código genérico para encontrar raíz cuadrada. La forma en que creo que es tomar tres variables bajas, medianas, altas. High = UserInput, Low = 0, Mid (bajo + alto) /2, el problema es cómo cambiar los valores en ese momento.
Solución
Otros consejos
Digamos que estamos buscando sqrt(N)
Como se describe aquí, debe encontrar el promedio de bajo y alto, si el cuadrado de promedio es mayor que N
, cambiamos el alto valor con el promedio que acabamos de encontrar, si es menor que N
, cambiamos el valor bajo con el promedio. Y repetimos los pasos tantas veces para satisfacer la precisión requerida.