Écrivez du code pour trouver Square-Root en utilisant la méthode de bissection en C ++? [fermé

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

  •  29-07-2022
  •  | 
  •  

Question

La bissection est pour autant que je sache pour réduire votre recherche et atteindre la valeur spécifique de l'intervalle. Veuillez me donner un échantillon de ce comment faire un code générique pour trouver Square-Root. La façon dont je pense prendre trois variables basses, moyennes, hautes. high = userInput, bas = 0, mid (faible + high) / 2, le problème est de savoir comment modifier les valeurs alors.

Était-ce utile?

La solution

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

Autres conseils

Disons que nous recherchons sqrt(N)

Comme décrit ici, vous devez trouver la moyenne de faible et haut, si le carré de moyenne est supérieur à N, nous modifions la valeur élevée avec la moyenne que nous venons de trouver, si elle est inférieure à N, nous modifions la faible valeur avec la moyenne. Et nous répétons les étapes autant de fois pour satisfaire la précision requise.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top