程序如下:#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;
}