(解题报告)HDU1001---Sum problem
2015-11-06 13:03
274 查看
Sum Problem
Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 372618 Accepted Submission(s): 93378
Problem Description
Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).
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
解题要点
用while(scanf()!=EOF)输入;
两种求法,第一种直接利用for累加,第二种利用公式求;
第一种
注意数据范围,因使用long long 类型———定义 __int64 调用 %I64d
第二种
使用sum=n*(n+1)/2错误,原因是n * (n+1)的数据范围可能超过32位,所以应该使用sum=n/2 * (n+1)或 sum=(n+1)/2 * n;
注意每个例子后面都有一行空行
第一种代码如下:
第二种代码如下:
Time Limit: 1000/500 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 372618 Accepted Submission(s): 93378
Problem Description
Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).
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
解题要点
用while(scanf()!=EOF)输入;
两种求法,第一种直接利用for累加,第二种利用公式求;
第一种
注意数据范围,因使用long long 类型———定义 __int64 调用 %I64d
第二种
使用sum=n*(n+1)/2错误,原因是n * (n+1)的数据范围可能超过32位,所以应该使用sum=n/2 * (n+1)或 sum=(n+1)/2 * n;
注意每个例子后面都有一行空行
第一种代码如下:
#include <stdio.h> int main () { int i,n; __int64 sum; while(scanf("%d",&n)!=EOF) { sum=0; //每算完一次都将sum清0 for(i=1;i<=n;i++) { sum+=i; } printf("%I64d\n",sum); printf("\n"); } return 0; }
第二种代码如下:
#include<stdio.h> int main() { int n,sum; while(scanf("%d",&n)!=EOF) { if(n%2==0) sum=n/2*(n+1); else sum=(n+1)/2*n; printf("%d\n\n",sum); } return 0; }
相关文章推荐
- Linux查看当前登录用户并踢出用户
- VS2008中设置字体大小和添加显示行号
- Ubuntu 入门 Lession 02.文本模式下指令的下达
- 【Android实战】Bundle传递自定义Object的ArrayList
- eclipes+tomcat+spingmvc 发布到阿里云服务器mysql遇到问题
- xp安装教程
- hdu2084数塔(动态规划)
- Android Fragment 真正的完全解析(上)
- iOS每日一读官方文档01
- 方法覆盖(override)”的要点
- js、jquery常用
- CF 593D
- window.name==window['name']
- 对话 UNIX: 探察管道
- activemq和jms是种什么关系
- 内存管理
- 在Android上修改读取IMEI码的方法
- uboot 中SECTIONS 详解
- iOS ---反向传值 协议传值
- 状态栏沉浸