'Convert while loop to recursive [closed]

I have the following code and I want to make the while loop recursive since I need a recursive function of the nth root of a number but I don't know how to do it

public static void main(String[] args) {
    float x = 0f;
    int n = 0;
    float result = 0f;
    float aux = 0.00001f;
    Scanner sc = new Scanner(System.in);

    x = sc.nextFloat();
    n = sc.nextInt();

    if (n == 0) {
        result = 1;
    } else {
        while (nthPower(result, n) < x) {
            result = result + aux;
        }
    }

    System.out.printf("%.4f\n", result);
}

public static float nthPower(float x, int n) {
    float tmp = 1;

    for (int i = 0; i < n; i++) {
        tmp = tmp * x;
    }

    return tmp;
}


Solution 1:[1]

Actually you should break the function down first:

A loop has a few parts:

the header, and processing before the loop. May declare some new variables

the condition, when to stop the loop.

the actual loop body. It changes some of the header's variables and/or the parameters passed in.

the tail; what happens after the loop and return result.

foo_recursive(params){ header return foo_recursion(params, header_vars) }

foo_recursion(params, header_vars){ if(!condition){ return tail }

loop_body
return foo_recursion(params, modified_header_vars)

}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1