杭电 1001 Sum Problem
来源:互联网 发布:淘宝购物返利群 编辑:程序博客网 时间:2024/06/05 00:25
这个题目看起来很简单只要使用高斯公式s=n*(n+1)/2就可以算出来,其实其中藏有陷阱。因为如果按照这样算的话,n*(n+1)的值有可能超过32bit的表示范围,所以一个有效的方法是先将n(n为偶数)除以2或者将(n+1)(n为奇数)除以2,这样就不会超过32bit的表示范围。
C++代码:
#include<iostream>using namespace std;int main(){int n;int sum=0;while(cin>>n){if(n&1)sum=(n+1)/2*n;elsesum=n/2*(n+1);cout<<sum<<endl<<endl;}return 0;}
- 杭电1001 Sum Problem
- 杭电 1001 Sum Problem
- 杭电1001 - Sum Problem
- 杭电1001 Sum Problem
- 杭电1001-Sum Problem
- 【杭电】[1001]Sum Problem
- 杭电1001:Sum Problem
- 【杭电】 1001 Sum Problem
- 【杭电1001】Sum Problem
- 杭电1001 Sum Problem
- 杭电ACM 1001(Sum Problem)
- 杭电ACM 1001 Sum Problem
- 杭电acm 1001 Sum Problem
- 杭电ACM 1001:Sum Problem
- 杭电ACM----------1001 Sum problem
- 杭电1001题 sum problem
- 杭电oj 1001 sum problem
- 杭电oj-1001-Sum Problem
- java面向对象之条件语句的运用
- leetcode implement strStr
- android中上下文菜单的创建-----比如长按某个按钮删除数据
- jqueryui的button组件
- MFC中按下回车键传递输入焦点
- 杭电 1001 Sum Problem
- fread读取yuv图像文件不完整的问题
- PhoneGap开发Android程序
- pipe函数详解
- MySQL中的表中增加删除字段
- 汇编中addr和offset
- 机房收费系统——上机和下机
- Log4j最简入门及实例
- 人类没有Java就像孩子不会说话