牛牛准备继续进阶,计算更难的数列
输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...+2n-1)的值
#include<stdio.h>
#include<math.h> //int abs(int x) 返回x的绝对值
int main()
{
int n,j,denominator=1; //分母
double sum=1;
scanf("%d",&n);
if(n==1) printf("1.000");
else
{
for( j=3 ; j<=(2*n-1) ; j=j+2 )
{
denominator=denominator-abs(denominator)/denominator*j;
sum=sum+1.0/denominator;
}
printf("%.3lf\n",sum);
}
return 0;
} #include <stdio.h>
#include <math.h>
int main(){
int n = 0; double sum_1, sum = 0.0;
scanf("%d", &n);
for(int i = 1; i <= n ; i++){
sum_1 += pow(-1, i-1) * (2 * i - 1);
sum += 1.0 / sum_1;
}
printf("%.3lf", sum);
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;
} #include <stdio.h>
#include <math.h>
int main() {
double sum = 0, tempSum = 0;
int n;
while (scanf("%d", &n) != EOF) {
for (int i = 1; i <= n; i++) {
tempSum += pow((-1), (i - 1)) * (2 * i - 1); // 先把分母求和
sum += 1.0 / tempSum;
}
}
printf("%.3lf\n", sum);
return 0;
}
n = int(input())
s = 0
for i in range(1,n+1):
s += 1/(i*(-1)**(i-1))
print(f"{s:.3f}") #include <stdio.h>
int main() {
double n,sum=0,b=0;
int i,j;
scanf("%lf", &n);
for (i=1; i<=n; i++) {
int p=0;
for (j=1; j<=2*i-1; j+=2) {
b=pow(-1,p++)*j;
}
sum+=1.0/b;
}
printf("%.3lf\n", sum);
return 0;
}
哪里出问题了呢?输出值比实际大