C语言的多项式计算:(2^1)⼀1!-(2^2)⼀2!+(2^3)⼀3!......-(2^100)⼀100!

2025-01-07 05:57:39
推荐回答(2个)
回答1:

方法一:(2^i)/factorial(i )- (2^(i+1))/factorial(i+1) i取(1,3,5,。。。。)用一个for循环求就可以了,2^i应该是power(2,i)在math.h中。方法2:(-1)^(i-1)*(2^i)/factorial(i)用for循环求和100次就可以了。阶乘用自定义的factorial函数,int factorial(int n){int f=1;for (int i = 1;i<=n;i++){f = f *i;}return f;},这样应该就可以了。

回答2:

#include
#include
main()
{
int i,j,t=1;
double sum=0.0,s=-1.0,k;
for(j=1;j<=100;j++)
{
for(i=1;i<=j;i++)
{t*=i;}
s=-s;
k=s*pow(2,j)/t;
sum+=k;
}
printf("%12.3lf",sum);
}
程序是正确的!因为你的公式可能导致超出范围所以没法进行正常的输出!