当给一个值时,转成从1到这个值的相加的结果?比如,5如何得出1+2+3+4+5=15 ?有没简单的算法?

解决方案 »

  1.   

    int a=0;
    for(i=5;i<0;i--)
    {
         a=a+i
    }
      

  2.   

    create function fn_getnumsum(
    @n int
    )returns int
    as
    begin
    if @n is null return null
    declare @i int
    set @i=0
    while @n>0
    select @i=@i+@n,@n=@n-1
    return @i
    end
    goselect dbo.fn_getnumsum(5)
    --15
      

  3.   

    --2005  最大到2048
    SELECT SUM(number) 
    FROM (SELECT number  FROM master..spt_values where number BETWEEN 0 AND 5 GROUP BY number)T
      

  4.   

    int a=0;
    for(i=5;i>0;i--)
    {
    a=a+i
    }
    不好意思刚刚错了
    是这个
      

  5.   


    declare @num int
    set @num = 15
    --(首项 + 末项) * 项数 / 2
    print (1 + @num) * @num / 2
    --结果
    /*
    120
    */
      

  6.   

    叫什么来着,等差数列求和?(a1+an)*n/2  是这个公式吗?
      

  7.   

    (1+n)*n/2 
    在sql里写个函数就可以了
      

  8.   

    declare @num int
    set @num = 15
    --(首项 + 末项) * 项数 / 2
    print (1 + @num) * @num / 2
    --结果
    /*
    120
    */
      

  9.   

    楼主要明白数据库SQL 语句和程序编写的思想差不多的,慢慢套吗
      

  10.   


    int fun(int in)
    {
        int out;
        out = (1+in)*in/2;
        return out;
    }