Newton's Method

PGD·2022년 1월 5일
0
#include <stdio.h>

double newtonMethod(int n);
double task(double origin, double d, int n);

int main(int argc, char* argv[]) {
    int n;
    scanf("%d", &n);

    double root = newtonMethod(n);

    printf("%lf\n", root);

    return 0;
}

double newtonMethod(int n) {
    int guess = 1;
    int dd = guess * guess;

    while (dd < n) {
        guess++;
        dd = guess * guess;
    }

    return task((double)n, (double)--guess, 1);
}

double task(double origin, double d, int n) {
    double next = d / 2 + origin / (2 * d);
    if (n == 100) {

        return next;
    } else {

        return task(origin, next, n + 1);
    }
}
profile
student

0개의 댓글