Переделать код, что бы в нем применялась рекурсивная функция для возведения числа в степень - C (СИ)

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

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

Здравствуйте, помогите пожалуйста переделать код, что бы в нем применялась рекурсивная функция для возведения в степень
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <ctype.h>
double power(double a, int b);
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
   double x,xpow;
   int n;
   printf("Введите число и целую степень,");
   printf ("в которую\nчисло будет возведено. Для завершения программы");
   printf ( " введите q.\n");
   while (scanf("%lf%d", &x, &n) == 2)
{
xpow = power(x,n); // вызов функции
printf ( "%.3g в степени %d равно %.5g\n", x, n, xpow);
printf("Введите следующую пару чисел или q для завершения.\n");
}
   printf("Bye!");
   getchar();return 0;}
 
double power(double a, int b)
 
{ double pow = 1;
  int i;
  if(b==0)
  {if(a==0)
    printf("Результат возведения в степень 0 не определен, используем значение 1;\n");
    pow=1.0;
  }
  else if (a==0)
    pow=0.0;
  else if (b>0)
   for(i=1;i<=b;i++)
     pow*=a;
  else
    pow=1.0/power(a,-b);
return pow;
}

Решение задачи: «Переделать код, что бы в нем применялась рекурсивная функция для возведения числа в степень»

textual
Листинг программы
double p=power(a,n/2);
p*=p;
if (n%2) return a*p;
return p;

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

  1. Входные данные: a - число, n - число.
  2. Используется функция power(a, n/2), которая возводит a в степень n/2.
  3. Результат возведения в степень умножается на себя.
  4. Если n нечетное, то результат умножается на a.
  5. Результат возвращается из функции.

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


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

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

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