求1/1!-1/3!+1/5!-1/7!+…+(-1)n+1/(2n-1)!
(1)模型为Sn=Sn-1+(-1)n+1/(2n-1)!
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, n, sign;
float s, t;
printf("请输入n:");
scanf("%d", &n);
sign = 1;
s = 1;
for(i = 2; i <= n; i++) //从第二项开始
{
t = 1;
for(j = 2;j <= 2*i-1; j++) //求阶层
{t = t*j;}
for(j = 2; j <= i; j++) //求符号
{sign = sign * (-1);}
s = s + sign/t; //求和
}
printf("sum = %f", s);
}
时间复杂度为O(n^2)
(2)模型为Sn=Sn-1+(-1)n+1An,An=An-1 *1/((2n-2)(2n-1))
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, n, sign;
float s, t = 1;
printf("请输入阶层:");
scanf("%d", &n);
sign = 1;
s = 1;
for(i = 2; i<= n; i++)
{
sign = -sign; //求符号
t = t*(2*i-2)*(2*i-1); //求阶层
s = s + sign/t; //求和
}
/*for(i = 1; i<= n-1; i++
{
sign = -sign;
t = t*2*i*(2*i+1);
s = s + sign/t;
}*/
printf("sum = %f", s);
}
时间复杂度为O(n)