题目来源:算法设计与分析(第三版)@吕国英等编著
题目描述
求1/1!-1/3!+1/5!-1/7!+……+(-1)^(n+1)/(2n-1)!
问题分析
题目中,既有累加又有累乘。
数学模型
模型一:
模型二:
代码编写
模型一:
#include<stdio.h>
int main() {
int i,j,n,sign;
float sum,t;
sum = 0;
printf("input n:");
scanf("%d",&n);
for(i=1; i<=n; i++) {
//01、sign=(-1)^(n+1)
sign = -1;
for(j=1; j<=i; j++) {
sign = sign*(-1);//n=1时,sign=1
printf("sign: %d \n",sign);
}
//02、t=(2n-1)! ,当n=1时,sum=1/1! ;当n=2时,sum=1/1!-1/3!
t = 1;
for(j=1; j<=2*i-1; j++) {
t = t*j;
printf("t: %.2f \n",t);
}
//03、
sum = sum + sign/t;
}
printf("Sum = %.2f \n",sum);
}
模型二:
#include<stdio.h>
int main() {
int i,n,sign;
float s,t=1;
scanf("%d",&n);
s=1;
sign=1;
for(i=2; i<=n; i++) {
sign=-sign;
t=t*(2*i-2)*(2*i-1);//求阶乘
s=s+sign/t;//阶乘和
}
printf("s = %.2f\n",s);
}
打印显示