写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)

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

阅读更多
文章标签: 优化
个人分类: C
上一篇strcat,strcpy,strcmp,strlen4个常用字符串处理函数的数组与指针简单实现方法~
下一篇经过六块电池试验得出的数据,手机正确充电方法,不要盲目听信别人话语(转)
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭