关闭

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

1108人阅读 评论(0) 收藏 举报

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16081次
    • 积分:247
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:1篇
    • 译文:0篇
    • 评论:2条
    文章存档
    最新评论