5.15 输入n和x,计算x的n次幂并输出。要求定义一个递归函数计算x的n次幂。

要求考虑x为浮点数,n为正数、负数和零的情况。

测试用例:输入3 3.5,输出42.875

测试用例:输入-3 3.5,输出0.023324

测试用例:输入0 3.5,输出1

#include<stdio.h>
double calculate(int n, double x,double x_n);

int main(void)
{
  int n;
  double x;
  scanf("%d%lf", &n, &x);
  double x_n = 1;
  x_n=calculate(n, x, x_n);
  printf("%.5g", x_n);

  return 0;
}

double calculate(int n, double x,double x_n)
{
  
  
  if (n > 0)
  {
    n -= 1;
    x_n *= x;
    if (n > 0)
      x_n = calculate(n, x, x_n);
  }
  else if (n < 0)
  {
    n += 1;
    x_n *= 1/x;
    if (n < 0)
      x_n = calculate(n, x, x_n);
  }
  return x_n;
}

 

说点什么

avatar

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

  Subscribe  
提醒