Реализовать рекурсивную функцию, находящую приближенное значение корня 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; } }
Объяснение кода листинга программы
- Рекурсивная функция SqrtK() принимает три аргумента: x, k, n.
- Если x больше нуля, то выполняется блок кода внутри первого if.
- Если n равно нулю, то возвращается значение x.
- Если n не равно нулю, то возвращается результат вызова функции SqrtK(), деленный на k-1, минус x, деленное на результат вызова функции SqrtK(), деленный на k-1.
- Если x меньше или равно нулю, то выполняется блок кода внутри первого if.
- Результатом работы функции SqrtK() будет приближенное значение корня k-й степени из x.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д