5.13 定义函数cal(p)计算如下算式的值: 1 + 1/2! + 1/3! + 1/4! + … (感叹号表示阶乘,省略号表示后续项省略)

其中,p表示计算的精度,p的取值可以为10^-1,10^-2,10^-3,10^-4,… 10^-n。

对于给定的p,用函数cal(p)计算上述算式的值,直到最后一项的绝对值小于精度p。

在main函数中,输入给定的n,依次调用cal(p)计算精度分别为

10^-1,10^-2,10^-3,10^-4,… 10^-n时,上述算式的结果,并打印输出。

测试用例,输入9,输出如下:

#include<stdio.h>
void call(int p);

int main(void)
{
  int p = 0;
  scanf("%d", &p);
  call(p);

  return 0;
}

void call(int p)
{
  double sum = 0;
  long factorial = 1,sum_p=10;
  int i = 2;
  for (int k = 0; k < p; k++)
  {
    sum_p *= 10;
    while (factorial < sum_p)
    {
      sum += 1 / (double)factorial;
      factorial *= i;
      i++;
    }
    printf("%lf\n", sum);
  }
}

 

说点什么

avatar

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

  Subscribe  
提醒