求N+(N+1)+(N+2)+...(N+M)=?函数原型long Get(int N, intM);
看大家的解法有没有比我的更好的,最后贴出我的算法.

解决方案 »

  1.   

    long Get(int N, int M);
      

  2.   

    retrun N*M + ∑(1到M);
      

  3.   

    long Get(int n,int m)
    {
      long result;
      result=n*(m+1)+(1+m)*m/2;
      return result;
    }
      

  4.   

    很明显这是个数学问题
    N+(N+1)+(N+2)+...+(N+M)=N*(M+1)+(M+1)*M/2=(M+1)*(N+M/2)
    然后算法还用写么?2-3行搞定的事
      

  5.   

    long Get(int N, intM);
    {
      long sum=N*M;
      for(int i=1;i<=M;i++)
         {
            sum+=i;
         }
      return sum;
    }
      

  6.   

    等差数列前N项和公式S=(A1+An)N/2 
    等差数列公式求和公式 Sn=n(a1+an)/2 或Sn=na1+n(n-1)d/2 
      

  7.   

    retrun  N*M+∑(1到M) = N*M + M*(M+1)/2;
      

  8.   

    long Get(int N, intM); 

      return N * M + (1 + M) * M / 2; 
    }
      

  9.   

    或者
    long Get(int N, intM); 

      return (2 * N + M) * M / 2; 
    }
      

  10.   

    都不注意看题......=N*(M+1)+M*(M+1)/2return N*(M+1)+M*(M+1)/2;
    //不能简化,不然错误
    //return (N+M/2)*(M+1)
      

  11.   

    真是服了,我怎么觉得csdn的有些同学把高中的数学全忘了啊
      

  12.   

    (2n+m)*(m+1)/2 这样没问题吧
      

  13.   

    return N *(M+1) + (1+M)*M/2