大神无喷
在这里遇到一个坑 那就是变量 g 如果直接写成 1 那么就不能得到正确结果 可能这跟计算机内部的存储方式有关
#include<stdio.h>
double fun(int n)
{
double g = 1;
double i = 0;
static double sumall = 0;
if (n == 0)
{
return sumall;
}
i = g / n;
if (n % 2 == 0)
{// 说明是 2 的倍数
sumall -= i;
n = n - 1;
return fun(n);
}
if (n % 2 != 0)
{// 说明不是2 的倍数
sumall += i;
n = n - 1;
return fun(n);
}
}
int main()
{
int sum = 0;
double sumall = 0;
sumall = fun(1000);
printf("计算结果是%f", sumall);
}
递归实现1-1/2+...(-1)^n-1*1/n
最新推荐文章于 2021-06-21 20:33:13 发布