首页 > 试题广场 >

牛牛学数列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
//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)
#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 a = 0;
    while ((scanf("%d", &a)) != EOF) {
        float sum = 1;
        float sum1 = 1;
        float x1 = 1; //增加的序数
        float x2 = 1; //括号里的和
        if (a == 1) {
            printf("1.000\n");
        } else {
            for (int i = 2; i <= a; i++) {
                x1 = x1 + 2.0;
                if (i % 2 == 0) {
                    x2 = (x2 - x1);
                    sum = 1 / x2;
                    sum1 = sum + sum1;

                } else {
                    x2 = (x2 + x1);
                    sum = 1 / x2;
                    sum1 = sum + sum1;
                }
            }
            printf("%.3f\n", sum1);
        }
    }
    return 0;
}
发表于 2025-02-12 09:36:14 回复(0)
#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;
}

发表于 2024-12-12 08:09:15 回复(0)
#include<stdio.h>
#include<math.h>
int main()
{
int n=0;
scanf("%d",&n);
int m=0;
double a=0.0;
for(;n>=1;--n)
{

int b=0;
int c=0;
for(m=1;m<=2*n-1;m=m+2)
{
b=b+pow(-1,c)*m;
++c;
}
a=a+1.0/b;
}
printf("%.3lf",a);
    return 0;
}
发表于 2024-08-10 16:16:27 回复(0)
#include <stdio.h>

double b(int n)
{
    int i=0;
    int s=0;
    int f=-1;
    for(i=1;i<=(2*n-1);i=i+2)
    {
        s=s+f*i;
        f=-f;
    }
    return 1.0/-s;
}

int main() 
{
    int n=0;
    scanf("%d",&n);
    int i=0;
    double sum=0;
    for(i=1;i<=n;i++)
    {
        sum=sum+b(i);
    }
    printf("%.3f",sum);
    return 0;
}

发表于 2024-07-29 19:21:49 回复(0)
#include <stdio.h>

int main() {
    int n;
    scanf("%d", &n);  // 读取输入的整数n

    double sum = 0.0;
    double denominator = 0.0;
    int sign = 1;  // 初始符号为正

    for (int i = 1; i <= n; ++i) {
        denominator += sign * (2 * i - 1);  // 计算分母
        sum += 1.0 / denominator;  // 累加到总和
        sign = -sign;  // 改变符号
    }

    printf("%.3f\n", sum);  // 输出结果,保留三位小数

    return 0;
}
发表于 2024-07-22 17:01:37 回复(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>

int main() 
{
    double result = 0.0;
    int n = 0;
    int i = 0;

    scanf("%d", &n);

    for(i = 1; i <= n; i++)
    {
        if(i % 2 == 0)
            result -= 1.0 / i;
        else
            result += 1.0 / i;
    }

    printf("%.3lf\n", result);

    return 0;
}

编辑于 2024-04-05 21:30:03 回复(0)
#include <stdio.h>

int main() {
    
    int n =0;
    scanf("%d",&n);
    double sum =0.0;
    int i =0;
    int s = 1;//做符号
    int temp = 0;//做分母
    for(i = 1 ;i <= n;i++)
    {
       temp = s * i;
       sum += 1.0/temp;
       s = -s;   //符号改变正负
    }
    printf("%.3lf\n",sum);
    return 0;
}

编辑于 2024-03-15 13:54:05 回复(0)
#include <stdio.h>
#include <stdbool.h>

// 判断奇偶
bool oddOrEven(int x) {
  if (x % 2 == 0) return true;
  else return false;
}

// 计算分母
int oddOp(int x) {
  int sum = 0;
  int n=1;
  for (int i = 1; i <= x; i++) {
    if (!oddOrEven(i)) {
      sum += n;
      n +=2;
    } else {
      sum -= n;
      n +=2;
    }
  }
  return sum;
}

int main() {
  int x;
  double result = 0;
  scanf("%d", &x);
  for (int i = 1; i <= x; i++) {
    result += (1.0) / oddOp(i);
  }

  printf("%.3lf\n", result);

  return 0;
}


发表于 2024-02-25 15:14:01 回复(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 n;
    float sum;
    scanf("%d", &n);
    for(int i=1; i<=n; i++){
        int a=0;
        for(int x=1; x<=i; x++){
            a += (pow(-1,x-1)*(2*x-1));
        }
        sum += 1.0/a;
    }
    printf("%.3f", sum);
    return 0;
}
编辑于 2024-01-20 10:15:17 回复(0)
#include <stdio.h>
#include <math.h>
int main()
{
	int n;    //n为输入的数字// 
	double sum=0,sum1=0;   //sum为结果,sum1为每项的分母// 
	scanf("%d",&n);
	for(int i=1;i<=n;i++)   //循环n次// 
	{
	    sum1+=pow((-1),(i-1))*(2*i-1);  //计算分母// 
		sum+=1.0/sum1;     
	}
	printf("%.3f",sum);
	return 0;
 } 

发表于 2023-11-07 20:39:50 回复(0)
请问这写的有啥问题吗,提交显示出错 ,
#include <stdio.h>

int main() {
    int a;
    double sum=0.0;
    int i,f=1;
    int t=0;
    scanf("%d",&a);
    for(i=1;i<=a;i=i+2)
    {
        t=t+i*f;
        f=-f;
        sum=sum+1.0/t;

    }
    printf("%.3lf",sum);
    return 0;
}

发表于 2023-11-06 20:29:57 回复(0)