程序如下:#include<stdio.h>
int Sum(int n)
{
return ((long)1+n)*n/2;//或者return (1l+n)*n/2;
}
main()
{
int n;
scanf("%d",&n);
printf("1到%d的和是:%d/n",n,Sum(n));
}
写成这样子,而不写成下面用for循环来实现1到n的求和,是因为上面这个程序的执行效率高。对于下面的解答,不管怎么去优化去优,其效率也不可能与直接return ( 1 l + n ) * n / 2相比!
int Sum( int n )
{
long sum = 0;
for( int i=1; i<=n; i++ )
{
sum += i;
}
return sum;
}
本文介绍了一种使用数学公式实现的高效求和算法,并对比了传统循环求和的方法,展示了其在执行效率上的显著优势。
&spm=1001.2101.3001.5002&articleId=6142882&d=1&t=3&u=5253d8579be14957b8c41db37f0f43ce)
3962

被折叠的 条评论
为什么被折叠?



