编写程序,输入正整数n,求Sn=1-2!/3+3!/5....+(-1)^(n+1)n!/2n-1
#include<stdio.h>
int main()
{ //主要就是求阶乘的
int i,n,t=1; //定义初始值
float j=-1.0,s;
printf("输入正整数:");
scanf("%d", &n);
for(i=1;i<=n;i++){
t *= i;
j *= -1;
s += j*t/(2*i-1); // 结果s的递推公式
}
printf("总和为%.3f", s);
return 0;
}
#include <stdio.h>
int main(){
int n,N=1,i;//定义变量i N
double m,Sn=0.0;//赋初始值为0
m=-1.0;
printf("请输入正整数:");
scanf("%d",&n);
for(i=1;i<=n;i++){
N*=i;
m*=-1.0;
Sn+=mN/(2i-1);
}
printf("总和为%.3lf\n",Sn);
return 0;
}
#include <stdio.h>
int main()
{
int n, i, f = -1;
double s = 1, g = 1;
printf("请输入正整数:");
scanf("%d", &n);
for (i = 2; i <= n; i++)
{
g *= i;
s += g / (2 * i - 1) * f;
f = -f;
}
printf("总和为%.3lf", s);
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
def Sn(n):
m = 0
for i in range(1, n+1):
i阶乘 = 1
for j in range(1,i+1):
i阶乘 = i阶乘*j
m += (-1)**(i+1) * i阶乘/(2*i-1)
return round(m,3)
r = input("请输入正整数:")
print("总和为",Sn(int(r)))
输出结果如下:
#include<stdio.h>
int main()
{
int i,n,t=1;
float j=-1.0,s;
printf("输入正整数:");
scanf("%d", &n);
for(i=1;i<=n;i++){
t *= i;
j *= -1;
s += j*t/(2*i-1);
}
printf("总和为%.3f", s);
return 0;
}