3 条题解

  • 0
    @ 2026-1-11 10:49:47

    想当初我第一次在校内选拔时看到的时候感觉要用for循环,但其实仔细思考后可以不用,我自己推导了一个这种数列的求和公式: (n(n+1)/2)(k(k1)/2)(n(n+1)/2)-(k(k-1)/2) 其中n为结束数字,k为起始数字,原理很简单,我先把从一到n的数列进行求和,再把k之后的一个到一的数列进行求和,两式一减,可得上式,把带入一,就是我们常见的等差为一的等差数列求和公式,代码如下:

    a=int(input())
    b=int (input())
    c=b*(b+1)
    d=c/2
    e=a*(a-1)
    f=e/2
    g=d-f
    print(int (g))
    
    

    注意最后要int一下,不然最后虽然是整数但会有.0,过不了AC(别问我怎么知道的)

    • 0
      @ 2025-4-14 17:37:33
      #include<bits/stdc++.h>
      using namespace std;
      int main(){
          long long n,m,a=0;
          cin>>n>>m;
          long long l=n;
          for(int i=n;i<=m;i++){
              a=a+l;
              l++;
          }
          cout<<a;
          return 0;
      }
      
      • 0
        @ 2024-12-22 11:03:58

        C++ :

        #include<bits/stdc++.h>
        using namespace std;
        int a,b;
        int main(){
        	scanf("%d%d",&a,&b);
        	int sum=(a+b)*(b-a+1)/2;
        	printf("%d",sum);
        	return 0;
        }
        

        Python :

        # coding=utf-8
        n=int(input())
        m=int(input())
        x=0
        for i in range(n,m+1):
            x=x+i
        print(x)
        
        • 1

        信息

        ID
        153
        时间
        1000ms
        内存
        128MiB
        难度
        6
        标签
        (无)
        递交数
        10
        已通过
        29
        上传者