Прога вычисления корня кубического - C (СИ)

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

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

В универе задали написать прогу следуя условию: "Вводится натуральное число. Разработать программу вычисления кубического корня из этого числа с точностью до целой части, учитывая следующее: 1^3=1, 2^3=3+5, 3^3=7+9+11, 4^3=13+15+17+19 и т.д." Тоесть нужно сделать чтобы он работала по какому-то алгоритму, а не просто тупо использовала функцию возведения числа в степень 1/3. Никак не могу додуматься как это можно реализовать

Решение задачи: «Прога вычисления корня кубического»

textual
Листинг программы
int faktorial(int n){
  if(n==0) return 1;
  return n*faktorial(n-1);
}//факториалы тоже лучше заранее вычислить и в массив записать
double stepen(double c, int q){
  double ans=1;
  while(q>0){
    q--;
    ans*=c;
  }
  return ans;
}
double koren3(double x){
  double ans=0;
  int k=0;
  double proizvodnaya[3] = {1, 1/3, -2/(3*3)}; //тут придется побольше написать, штук сто возможно. может даже лучше программно вычислять их.
  while(stepen((x-1),k)>=faktorial(k)){
    ans+=(proizvodnaya[k]*stepen((x-1),k))/faktorial(k);
    k++;
  }
  return ans;
 
}

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

  1. В функции faktorial(int n) вычисляется факториал числа n. Если n равно 0, то возвращается 1. В противном случае, функция рекурсивно вызывает саму себя с аргументом n-1 и результатом этого вызова умножает n.
  2. В функции stepen(double c, int q) вычисляется степень числа c с основанием q. В цикле while уменьшается значение q на единицу, и каждый раз результат умножается на c.
  3. В функции koren3(double x) вычисляется кубический корень числа x. Используется массив proizvodnaya с коэффициентами для вычисления кубического многочлена. В цикле while вычисляется значение функции stepen с аргументами x-1 и k, и если это значение больше или равно факториалу k, то к ans добавляется произведение proizvodnaya[k] и stepen(x-1,k) разделенное на факториал k. Затем значение k увеличивается на единицу.
  4. Код не проверяет на вход недопустимые значения, такие как отрицательные числа или числа, большие 1.

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


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

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

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