C++ 프로그램에서 Newton Methods를 사용하여 주어진 부동 소수점 수의 큐브 루트를 계산합니다. 내 프로그램은 컴파일되지만 대답은 항상 0으로 나온다. 여기에 프로그램이 있습니다 :Newtons 메서드 큐브 루트를 찾는 경우 매번 0이 나온다.
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
const double epsilon = 0.00000001;
double A = 0;
double x1 = A/10;
double x2 = 0;
int iter = 0;
cout << "Please enter a number to square. " << endl;
cin >> A;
while ((fabs(x1 - x2) > epsilon) && (iter < 100)) {
x1 = x2;
x2 = ((2/3 * x1) + (A/(3 * x1 * x1)));
++iter;
}
cout << "The answer is : " << x2 << endl;
}
'2/3'가 정수 연산으로 수행됩니다. 0을 쓰는 중입니다.'2.0/3.0'으로 만들어보십시오. –
루프 중에는 절대로 입력하지 마십시오. – Jarvis
* 내 프로그램이 컴파일 됨 * - ok를 컴파일하는 프로그램은 구문이 올바른 것을 나타냅니다. 프로그램이 올바르게 실행되는지 또는 올바른 결과를 제공하는지 여부와 관련이 없습니다. – PaulMcKenzie