首页 > 试题广场 >

牛牛学数列3

[编程题]牛牛学数列3
  • 热度指数:25944 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛准备继续进阶,计算更难的数列
输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...+2n-1)的值

输入描述:
输入一个整数


输出描述:
输出一个浮点数,保留3位小数
示例1

输入

1

输出

1.000
#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;
}

发表于 2022-06-15 09:22:40 回复(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;
}


发表于 2022-05-24 21:56:30 回复(0)
#include<stdio.h>
#include<math.h>
int main(){
	int n = 0, i = 0;
	int fm = 0;//先计算分目
	double f = 0;//最后的结果用double类型
	scanf("%d", &n);
	for (i = 1; i <= n; i++){
		fm += pow(-1, (i - 1))*(2 * i - 1);//分母是累加的
		f += 1.0 / fm;
	}
	printf("%.3f", f);
	return 0;
}

发表于 2022-04-25 12:11:34 回复(0)
求点个赞
#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
    int n,sum=0,flag=1;
    double sum1=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        sum+=(2*i-1)*flag;
        flag*=-1;
        sum1 +=1.00/sum;
    }
    cout<<fixed<<setprecision(3)<<sum1<<endl;
    return 0;
}

发表于 2022-09-06 23:45:34 回复(0)
#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    double flag = 1.0;
    double sum = 0.0;
    for (int i = 1; i <= n; i ++ )
    {
//         cout << sum << endl;
        sum += flag / i;
        flag *= -1.0;
    }
    printf("%.3lf", sum);
}

发表于 2022-02-26 14:18:45 回复(0)
#include <stdio.h>
int main()
{
    int n,y;
    double sum=0,x;
    scanf("%d",&n);
    for(n;n>0;n--)
    {
        x=0;
        for(y=n;y>0;y--)
        {
            x=x+(2*y-1)*pow(-1,y-1);
        }
        sum=sum+1/x;
    }
    printf("%.3lf",sum);
    return 0;
}

发表于 2022-02-25 13:35:47 回复(0)
#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);  // 读取输入的整数n
    
    float sum = 0.0;  // 初始化sum为0
    
    // 外层循环计算每一项
    for (int i = 1; i <= n; i++) {
        int m = 0;  // 初始化m为0,每次开始计算新的分母时都要清零
        
        // 内层循环计算分母部分
        for (int j = 1; j <= 2 * i - 1; j += 2) {
            if ((j / 2) % 2 == 0) {
                m += j;  // 奇数项相加
            } else {
                m -= j;  // 偶数项相减
            }
        }
        
        // 当前项的值为 1.0 / m
        sum += 1.0 / m;
    }
    
    // 输出结果,保留3位小数
    printf("%.3f\n", sum);
    
    return 0;
}

发表于 2024-11-26 17:06:03 回复(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;
}

编辑于 2024-04-21 14:10:10 回复(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;
}

发表于 2024-02-09 15:45:15 回复(0)
#include <stdio.h>
#include <math.h>

int main() {
    int i = 0;
    int j = 0;
    int k = 0;
    int f = 0;
    double res = 0;
    scanf("%d", &i);
    for(j = 1 ; j <= i; j++)
    {
        for(k = 1 ; k <= j; k++)
        {
            f += pow(-1 , k - 1) * (2 * k - 1);
        }
        res += 1.0 / f;
        f = 0;
    }
    printf("%.3lf", res);

    return 0;
}
发表于 2023-02-27 21:03:31 回复(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;
}
发表于 2023-02-19 15:45:16 回复(0)
n=int(input())
s,t=0,0
for i in range(1,n+1):
    t+=pow(-1,i-1)*(2*i-1)
    s+=1/t
print("{:.3f}".format(s))

发表于 2025-11-21 22:38:52 回复(0)
//OK
#include <stdio.h>
int add_N(int n) {
    int sum = 1;
    int t;
    int count=0;
    for (int i = 2; i <= 2*n-1; i++) {
        if(i%2==1){
            t=i;
            count++;
            if(count%2==1) t*=-1;
            sum+=t;
        }
       
    }
    return sum;
}
int main() {
    int n;
    double result=0;
    scanf("%d", &n);
    for(int i=1;i<=n;i++){
        double t=1.0/add_N(i);
        result+=t;
    }
    printf("%.3lf\n",result);
}
发表于 2025-10-10 23:01:54 回复(0)
#include <stdio.h>

int main() {
    int n,sign=1,term;
    double s=0.0,sum=0.0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        term=2*i-1;
        s+=sign*term;
        sum+=1.0/s;
        sign*=-1;
    }
    printf("%.3lf",sum);
    return 0;
}
发表于 2025-08-16 17:48:33 回复(0)
#include <stdio.h>
#include <math.h>
int main() {
    int n = 0;
    scanf("%d",&n);
    int i = 1;
    float sum = 0;
    int m = 0;
    for(i = 1;i<=n;i++)
    {
        m = i*pow(-1,i-1);
        sum += 1.0/m;
    }

    printf("%.3f",sum);
    return 0;
}
发表于 2025-06-15 17:06:07 回复(0)
n = int(input())
s = 0
for i in range(1,n+1):
    s += 1/(i*(-1)**(i-1))
print(f"{s:.3f}")

发表于 2025-06-05 13:46:42 回复(0)
#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;
}

哪里出问题了呢?输出值比实际大
发表于 2025-03-22 11:04:43 回复(0)
#include<stdio.h>
int main()
{
    int n;
    double sum=0;
    int fenmu=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        fenmu = fenmu + (pow((-1), (i-1)))*(2*i-1);
       sum = sum + 1.0/fenmu;}
    printf("%.3lf",sum);
}
发表于 2025-03-09 15:26:06 回复(0)
#include <stdio.h>
int main()
{
    int n = 0;
    scanf("%d", &n);
    int i = 0;
    int sum = 0;
    float sum_1 = 0.0;
    int a = 1;

    for (i = 1; i <= (2 * n - 1);i+=2)
    {
        sum = sum + a * i;
        sum_1 = sum_1 + 1.0 / sum;
        a = -a;
       
    }
    printf("%.3f", sum_1);
    return 0;
}
发表于 2025-02-22 22:05:04 回复(0)
a=int(input())
b,s=0,0
for i in range(1,a+1):
    s+=((-1)**(i-1))*(2*i-1)
    b+=1/s
print(f'{b:.3f}')

发表于 2025-02-19 09:09:41 回复(0)