求某个非常大的数的递加的结果,最佳算法

 //利用高斯算法。将第i个数加上第(n-i)个数。

//高斯算法
double funcGS(double n)
{
//      GetTime(&t);
        double sum=0,i;
        if (n <= 1)
                return n;
        for(i=1; i <= n/2; i++)
        {
                sum += (i + (n-i));
        }
        if(((long)n % 2) == 0)
                return sum+(n-n/2);
        else
//              GetTime(&t);
                return sum + n;
}

你可能感兴趣的:(算法)