Problem Description
In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.
 
Input
The input will consist of a series of integers n, one integer per line.
 
Output
For each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in
the range of 32-bit signed integer.
 
Sample Input
1
100
 
Sample Output
1
 
5050
 ------------------------------------------------------------------------------------------------------------------
Sn = n*(n+1)/2
把两个相同的自然数列逆序相加
2Sn=1+n + 2+(n-1) + 3+(n-2) + ... n+1
=n+1 +n+1 + ... +n+1
=n*(n+1)
Sn=n*(n+1)/2
另,
m到n的自然数之和:Smn=(n-m+1)/2*(m+n)
(n>m)
Smn=Sn-S(m-1)
=n*(n+1)/2 -(m-1)*(m-1+1)/2
={n*(n+1) - m(m-1)}/2
={n*(n+1) - mn + m(1-m) + mn }/2
={n*(n-m+1)+ m(1+ n-m)}/2
=(n+m)(n-m+1)/2
注意:虽然题目说sum不会大于32位,但是n*(n+1)会大于32位。
 
#include <stdio.h>
#include <stdlib.h> int main()
{
long long n;
//freopen("F:\\input.txt", "r", stdin);
while (scanf("%lld", &n) != EOF)
{
printf("%lld\n\n", n * (n + 1) / 2);
}
//freopen("CON", "r", stdin);
//system("pause");
return 0;
}

  

最新文章

  1. 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合
  2. VS+VAssistX自动添加注释
  3. IOC和bean容器
  4. Server2003安装SP2补丁提示密钥无效的解决方法
  5. [改善Java代码]equals应该考虑null值的情景
  6. [MFC美化] SkinMagic使用详解1- SkinMagic使用流程
  7. Ionic如何实现单选二级菜单切换
  8. 无需安装SqlServer打开并管理SqlServer数据库的方法
  9. 报表生成工具 —— iText
  10. java笔记:排错5:误删maven target:恢复不了,怎么再生成
  11. 解决Linux系统80端口被占用的问题
  12. Centos 7 更换yum源
  13. One VS Rest
  14. python中enumerate()的用法
  15. 程序员编程艺术:面试和算法心得-(转 July)
  16. 【Django】关于ORM的使用
  17. SVM的sklearn.svm.SVC实现与类参数
  18. Kmeans算法原理极其opencv实现(转帖)
  19. 【Dnc.Api.Throttle】适用于.Net Core WebApi接口限流框架
  20. 八: 操作提示(wxml 即将废弃)

热门文章

  1. sql 字符、数字类型自动转换及运算
  2. Eclipse 校验取消
  3. this and super
  4. Pig load 用法举例
  5. Android UI组件----用相对布局RelativeLayout做一个登陆界面
  6. 手动搭建 redis 集群
  7. Oracle 查询状态 自检
  8. 探究MySQL MGR的读写分离
  9. .net验证是否合法邮箱和ip地址的方式
  10. 1. 跟踪标记 (Trace Flag) 1117, 1118 文件增长及空间分配方式