Scrivi il codice per trovare la radice quadrata usando il metodo di bisection in C ++? [Chiuso

StackOverflow https://stackoverflow.com/questions/19844698

  •  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.

È stato utile?

Soluzione

#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;
}

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
scroll top