精华内容
下载资源
问答
  • 下半年的事业单位考试正在来袭,在大家备考过程中不难发现,计算问题属于一类高频考点,而计算问题中的等差数列又是这一类题里最常考的知识点,那么,今天和大家分享的是等差数列中中项法求和公...

    【导读】

    中公事业单位为帮助各位考生顺利通过事业单位招聘考试!今天为大家带来数量关系:等差数列中项法求和的应用。

    【导读】

    中公事业单位为帮助各位考生顺利通过事业单位招聘考试!今天为大家带来数量关系:等差数列中项法求和的应用。

    下半年的事业单位考试正在来袭,在大家备考过程中不难发现,计算问题属于一类高频考点,而计算问题中的等差数列又是这一类题里最常考的知识点,那么,今天和大家分享的是等差数列中中项法求和公式的应用。我们初中时就知道了等差数列的通项公式和求和公式,但是那时主要应用的求和公式是:前n项和

    f12239637b6193c401e51c041873336a.png

    ,即

    73f53d1cce89579dda5e6468bf873847.png

    ,而在实际解题过程中我们发现,等差数列的中项法求和公式应用起来解题会更快。所以,对于等差数列的学习,一定要掌握中项法求和的方式。

    中项法求和分为两种情况,一是数列为奇数项时:Sn=中间一项×项数。

    【例1】主席台前排坐着5个人,最小的一个32岁,从第二个起,每个人都比前一个人年龄大3岁,则这个5个人的平均年龄为( )

    A.28 B.35 C.38 D.41

    【答案】C。

    【中公解析】方法一,依题意可知,5人年龄构成公差为3的等差数列,求5人的平均年龄,只需求5人的年龄和,再除以5即可,a1=32,根据通项公式易知a5=44,则

    f8c25ace707319a4732333ffd66e2437.png

    ,所以,5人平均年龄为190÷5=38。

    方法二,由中项法求和可知:五个人的年龄和S5=第三个人的年龄×5,所以第三个人的年龄即等于5人的平均年龄,第一人是32岁,则第二人为35岁,第三人为38岁,此题选C。

    中项法求和的另一种情况是数列为偶数项时:Sn=中间两项和×项数的一半。

    【例2】一张试卷共8道题,后面每一道题总比前一道多4分,如果试卷满分120分,那么第四道题分值是:

    A.17 B.16 C.13 D.11

    【答案】C。

    【中公解析】方法一,依题意,8道题的分值构成公差为4的等差数列,8项的和S8=120,根据通项公式和常规求和公式有:

    70f0d6a34ebaf40075f89f0e695c878b.png

    ……①;a8=a1+(8-1)×4……②;联立两式解得a1=1,所以,a4=1+(4-1)×4=13。

    方法二,由中项法求和可知:S8=120=(a4+a5)×4,则(a4+a5)=30,又因为a5比a4大4,所以a5=17,a4=13.此题选C.

    通过以上两道例题不难看出,在等差数列的计算问题中,如果能灵活运用中项法求和公式,那么解题过程也许会变得简单,更容易得到结果,所以,在事业单位备考过程中,一定要对中项法求和很熟悉,做到灵活运用。

    展开全文
  • 就是很简单的一个数列求和问题,运用到n*(1+n)/2公式,答主在做题的时候还在想,是否会出现除法的问题,但是n*(1+n)一定是一个偶数(证明过程过于简单,就不在这里列举出来了),所以最后求得的解一定是一个整数,所以...

    最近在做某学校的oj,遇到了这么一个问题,原本是很简单的问题,但是却怎么都不能Accept,最后才找到了解决方案

    问题如下:在这里插入图片描述

    就是很简单的一个数列求和问题,运用到n*(1+n)/2公式,答主在做题的时候还在想,是否会出现除法的问题,但是n*(1+n)一定是一个偶数(证明过程过于简单,就不在这里列举出来了),所以最后求得的解一定是一个整数,所以,答主最先开始的答案为:

    #include<stdio.h>
    int main()
    {
    int a;
    while(scanf("%d",&a)!=EOF)
    {
    	printf("%d\n\n",(1+a)*a/2);
    }
    return 0;
    }
    

    后来结果都知道的啦,那就是wronganswer,当时答主还在想,是不是空格啥的出现了问题,后来无论如何的换换行都不行,答主就换了另外一种答案,成功accept。

    #include<stdio.h>
    int main()
    {
    	int a;
    	while(scanf("%d",&a)!=EOF)
    	{
    		if(a%2)
    		{
    			printf("%d\n\n",(a+1)/2*a);
    		}
    		else
    			printf("%d\n\n",a/2*(a+1));
    	}
    return 0;
    }
    

    为了区分二者的区别,特意写了一个测试代码,来测试二者的区别,代码里面的65535仅是一个测试值

    #include<stdio.h>
    int f1(int n)
    {
    	if(n%2==0)
    	return n/2*(n+1);
    	else
    	return (n+1)/2*n;
    }
    int f(int n)
    {
    	return n*(n+1)/2;
    }
    int main()
    {
    	int i;
    	for(i=0;i<65535;i++)
    	if(f1(i)!=f(i))
    	{
    		break;
    	}
    	printf("%d",i);
    }
    

    运行结果如下:
    在这里插入图片描述
    这里我们有了新的发现,当i等于46341的时候,两个函数的值的结果是不一样的,这显然不符合我们的意想,我们对46341进行运算,当使用f1时,能够产生正确的结果,当时用f时,不会产生正确的结果。由这个地方我们可以猜测,可能产生了内存溢出的情况。

    在这里插入图片描述

    我们知道int类型的最大取值为2147483647(2^31-1),当我们使用f函数时,
    在这里插入图片描述
    发现产生的值为2147534622,超过了int类型所能够表示的最大值,这样会造成内存溢出,产生错误的结果。当我们取值为46340时:在这里插入图片描述
    产生的结果为2147441940,刚好在内存范围内,也表示了46341为一个界限值,表示的是当大于等于这个值时,内存会发生溢出,从而产生错误的答案。所以,这也是第一种写法为啥会给wronganswer而不是accept的原因。

    总结:

    在写类似的算法题的时候,一定要考虑到数字太大导致的内存溢出的情况的发生。可能采用其他的算法,不会导致内存溢出,我们所采用的算法应该尽可能能够适应更大的数。

    码字不易,点个赞再走呗。

    展开全文
  • 等差数列:2 5 8… 等差数列前n项和公式:sum= 在写编程时,第一次各项的顺序是(a1+an)/2*N,结果测试用例部分编译出现错误; 分析发现(a1+an)可能是奇数,所以直接除以2,会出现小数部分被忽略的情况,因此出现...

    等差数列:2 5 8…
    等差数列前n项和公式:sum=在这里插入图片描述
    在写编程时,第一次各项的顺序是(a1+an)/2*N,结果测试用例部分编译出现错误;
    分析发现(a1+an)可能是奇数,所以直接除以2,会出现小数部分被忽略的情况,因此出现误差。
    在这里插入图片描述

    所有项不变,调换顺序,(a1+an)*N/2,结果测试用例全部通过,
    在这里插入图片描述

    神奇,可能(a1+an)*N可以保证结果始终为偶数。

    展开全文
  • 题目链接 题意: 给你 [ L,R ] 一个区间,区间内...找出两个最前和最后的奇数和偶数,利用等差求和求得。 #include&lt;bits/stdc++.h&gt; using namespace std; typedef long long ll; int main() { ...

    题目链接

    题意:

    给你 [ L,R ] 一个区间,区间内的元素,奇数为负,偶数为正,求出区间内的总和。

    题解:

    提供两种想法,第一种就是我自己做的,中规中矩。找出两个最前和最后的奇数和偶数,利用等差求和求得。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int main()
    {
        ll Q;
        scanf("%lld",&Q);
        while(Q--){
            ll L,R;
            scanf("%lld%lld",&L,&R);
            if(L==R){
                if(L&1){
                    printf("%lld\n",-L);
                }else{
                    printf("%lld\n",L);
                }
            }
            else{
                ll S1,S2,E1,E2,n1,n2,sum1=0,sum2=0,ans=0;
                S1=L&1?L:L+1;
                S2=L%2==0?L:L+1;
    
                E1=R&1?R:R-1;
                E2=R%2==0?R:R-1;
    
                n1=(E1-S1)/2+1;
                n2=(E2-S2)/2+1;
    
                sum1=(S1+E1)*n1/2;
                sum2=(S2+E2)*n2/2;
    
                ans=sum2-sum1;
                printf("%lld\n",ans);
            }
        }
        return 0;
    }
    

    另外一种是运来哥提供的,他说是,利用第一项是否为奇偶和多少项组成二元关系,那么就有四种情况,只要仔细讨论一下就可以算出来。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int main()
    {
        ll Q;
        scanf("%lld",&Q);
        while(Q--){
            ll L,R;
            scanf("%lld%lld",&L,&R);
            if(L==R){
                if(L&1){
                    printf("%lld\n",-L);
                }else{
                    printf("%lld\n",L);
                }
            }
            else{
                ll cnt=(R-L+1),ans=0;
                if(L&1){
                    if(cnt&1){
                        ans=-R+(cnt-1)/2;
                    }else{
                        ans=(cnt)/2;
                    }
                }else{
                    if(cnt&1){
                        ans=R-(cnt-1)/2;
                    }else{
                        ans=-(cnt)/2;
                    }
                }
                printf("%lld\n",ans);
            }
        }
        return 0;
    }
    

     

    展开全文
  • 偶数求和

    千次阅读 2018-06-07 23:11:39
    =100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。输入输入数据有多组,每组占一...
  • hdu 2015 java 偶数求和

    2018-02-20 20:40:43
    用到等差数列求和公式Sn=na1+n(n-1)d/2 package second; import java.util.Scanner; public class j2015 { public static void main(String args[]){ Scanner scanner = new Scanner(System.in); ...
  • 解题思路:使用数组来记录等差数列 然后分情况进行计算注意事项:参考代码:importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);while(scanner....
  • hdu 2015 偶数求和

    2013-01-23 23:01:02
    水水的一个水题 但是一开始还写那么复杂 数学功底的问题啊 就是 前n个偶数 每m个一组 求平局数 如果最后落单了几个 就再求那几个的平均数 2 4 6 8 10 12....等差数列求和公式 首相是a 公差是2 前m
  • HDU 2015 - 偶数求和

    千次阅读 2013-11-26 00:00:39
    解决这个问题,关键是要解决给出一...而这个问题只要用等差数列求和公式就可以了。 从题目中可以看出,当这一组的第一个数是X时,下一组的第一个数就是 X + 2 * m 而从 X 开始连续 m 个偶数的和就是:  { X + [ X
  • 福建社区工作者考试网提供社区工作者行测的掌握是部分地区社区招聘的... 等差数列1.通项公式An =A1+(n-1)d2.求和公式Sn=(A1+An)n/2Sn=n*A1+n(n-1)d/2当n为奇数时:Sn=中间项*项数当n为偶数时:Sn=中间两项的平均数...
  • HDU 2015 偶数求和

    2019-09-27 16:18:51
    一段等差数列的平均值=首尾两项的和除以二。 #include <iostream> using namespace std; int main(){ int a[101];//偶数数列 for(int i=0;i<101;i++) a[i]=i*2; int n,m,p;//p指向每m个数的第一个 ...
  • 偶数求和

    2019-10-15 21:31:42
    =100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 输入 输入数据有多组,每组占...
  • 问题1159 偶数求和

    2019-09-01 10:47:28
    =100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 输入 输入数据有多组,每组...
  • ACM:偶数求和

    2019-06-09 00:04:21
    =100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 输入 输入数据有多组,每组...
  • HDU2015 偶数求和

    2016-06-27 08:00:00
    问题分析:这个问题是对n项的等差数列(公差为2),每m项计算一个平均值输出。 程序说明:程序的关键有以下几点: 1.使用模除 模除运算在C语言中用取余运算符%来实现。 2.循环控制 包括两个循环。 3.输出控制 ...
  • HDU - 2015 偶数求和

    2017-11-17 23:11:23
    问题分析:这个问题是对n项的等差数列(公差为2),每m项计算一个平均值输出。 程序说明:程序的关键有以下几点: 1.使用模除 模除运算在C语言中用取余运算符%来实现。 2.循环控制 包括两个循环。 3.输出控制 ...
  • 题目 1159: [偶数求和]

    2020-08-21 21:38:06
    =100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 输入 输入数据有多组,每组占...
  • 只要一个等差数列求和公式,只是要注意一下n%m!=0的情况 一道超级简单的水题,直接上代码吧 /********* hdu 2015 ************/ /********* 琴心&剑胆 ************/ /********* ...
  • 1050: 【偶数求和

    2017-05-03 12:56:21
    题目Description有一个长度为n(n)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。...
  • =100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 输入 输入数据有多组,每组占...
  • =100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 输入 输入数据有多组,每组占...
  • =100)的数列,该数列定义为从2开始的递增有序偶数(公差为2的等差数列),现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 输入 输入数据有多组,每组占...
  • 这一题我是先构造了一个等差数列的数组 然后求的用一个变量来控制每次取平均值的数的个数 这个记得刚开始写的时候对题目理解错了…… 然后纠结了好久
  • 但是我的方法用了等差数列前n求和的公式 所以时间复杂度只有O(n) #include<iostream> using namespace std; int main() { int n, m; int sum[100]; int N[101]; for (int i = 0; i < 100; i++) N...
  • 又x,y,z是等差数列,所以x+z必为偶数,那么x,z同奇同偶,我们不妨在颜色分组的基础上继续给它们分组(一组为奇数,一组为偶数)。 下面附上代码 const int maxn=1e5+10; struct group{//一个group为一种颜色 ...
  • 我们知道奇数位置肯定是一个等差数列求和。单独看偶数位置,会发现其中又蕴含了一个等差数列,把它求出来,再看剩下的,发现里面依然有一个等差数列。这样不断循环求出答案即可。 代码如下: #include #include #...
  • P1014Cantor表

    2019-10-23 20:24:12
    规律:每一个副对角线元素个数成等差数列 , 由等差数列求和公式 , 可知当前是第几条副对角线,并且当前最大分母数字为其最大个数 , 同时当对角线条数为奇数时遍历从左下到右上 , 偶数时从右上到左下,其次分母分子遍历...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

偶数等差数列求和