Реализовать рекурсивную функцию, находящую приближенное значение корня k-й степени - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Реализовать рекурсивную функцию, находящую приближенное значение корня k-й степени из числа x по формуле: y(0) = 1, y(n+1)=y(n)-[y(n) - x / y(n)^(k-1) ]/k, (x - вещественный параметр, k и n - целые; x > 0, k > 1, n > 0). Вот реализация на Паскале
function SqrtK(var x:real; k,n:integer):real;
var q:real;
begin
  if x>0 then
   if n=0 then  result:=x
    else begin
    //q:=SqrtK(x,k,n-1);
    result:= SqrtK(x,k,n-1)-(SqrtK(x,k,n-1)-x/SqrtK(x,k,n-1)/(k-1))/k;
    end;
end;
Помогите сделать на Си.

Решение задачи: «Реализовать рекурсивную функцию, находящую приближенное значение корня k-й степени»

textual
Листинг программы
double SqrtK(double x, int k, int n)
{
    if(x>0)
    {
        if(n==0)
            return x;
        return SqrtK(x,k,n-1)-(SqrtK(x,k,n-1)-x/SqrtK(x,k,n-1)/(k-1))/k;
    }
}

Объяснение кода листинга программы

  1. Рекурсивная функция SqrtK() принимает три аргумента: x, k, n.
  2. Если x больше нуля, то выполняется блок кода внутри первого if.
  3. Если n равно нулю, то возвращается значение x.
  4. Если n не равно нулю, то возвращается результат вызова функции SqrtK(), деленный на k-1, минус x, деленное на результат вызова функции SqrtK(), деленный на k-1.
  5. Если x меньше или равно нулю, то выполняется блок кода внутри первого if.
  6. Результатом работы функции SqrtK() будет приближенное значение корня k-й степени из x.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.545 из 5
Похожие ответы