牛牛准备继续进阶,计算更难的数列
输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...+2n-1)的值
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
double fm = 0.0;
double result = 0.0;
int n = 0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%2==0)
{
fm=fm-(2*i-1);
result = result + (1.0/(fm));
}
else
{
fm=fm+(2*i-1);
result = result +(1.0/(fm));
}
}
printf("%.3lf",result);
return 0;
} #include <stdio.h>
//分析
//分子每次都为一
//分母每次都会+-
int main()
{
int n =0;
int flag = -1;
int num =0;
double sum =0;
scanf("%d", &n);
int i = 0;
for(i = 1;i <= n;i++) //生成n个数
{
// int j =0;
// for(j =1; j<=2*i-1;j+=2) //分母每次变化2
// {
// num +=flag*j; //分母的值
// sum +=1.0/num; //每一次生成的值
// flag =-flag; //判定正负号
// }
// flag = -flag;
// num +=flag *i;
// sum +=1.0/num;
if(i%2==0)
{
sum -= 1.0/i;
}
else
{
sum += 1.0/i;
}
}
printf("%.3lf\n",sum);
return 0;
} #include <stdio.h>
//输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...((-1)^(n-1))*(2n-1))的值
//1 1-1/3 1-1/3+1/5...1-1/3+1/5-...
int main() {
int n = 0;
scanf("%d", &n);
int tmp = 0;
double sum = 0;
int flag=1;
for (int i = 1; i <= n; i++) {
tmp += flag * (2 * i - 1);
sum += 1.0 / tmp;
flag = -flag;
}
printf("%.3lf\n", sum);
return 0;
}