C ++에서 이등분법을 사용하여 제곱근을 찾으려면 코드를 작성 하시겠습니까? [닫은

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

  •  29-07-2022
  •  | 
  •  

문제

이등분은 내가 당신의 검색을 좁히는 것을 아는 한, 간격으로 특정 값에 도달합니다. 제곱근을 찾기 위해 일반 코드를 만드는 방법의 샘플을 알려주십시오. 내가 생각하는 방식은 세 가지 변수를 낮음, 중간, 높음으로 삼고 있다고 생각합니다. High = UserInput, Low = 0, Mid (Low + High) /2, 문제는 값을 변경하는 방법입니다.

도움이 되었습니까?

해결책

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

다른 팁

우리가 찾고 있다고 가정 해 봅시다 sqrt(N)

설명한대로 여기, 평균 제곱이 더 큰 평균 및 높음의 평균을 찾아야합니다. N, 우리는 그것이 방금 찾은 평균으로 높은 값을 바꾸고, 그것이 N, 우리는 평균으로 낮은 값을 변경합니다. 그리고 우리는 필요한 정밀도를 충족시키기 위해 여러 번 단계를 반복합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top