国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

HDU 1001 Sum Problem

2019-11-14 10:10:14
字體:
供稿:網(wǎng)友

Sum PRoblem

Time Limit: 1000/500 MS (java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 454929    Accepted Submission(s): 114527Problem DescriptionHey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n. InputThe input will consist of a series of integers n, one integer per line. OutputFor 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
1100 Sample Output
15050 新手的水題,本來沒什么難度,但對于像我這樣初上路的新手,還是會(huì)遇到很多問題,寫下來促進(jìn)自己提升。首先可以直接用疊加#include<stdio.h>int main() {int n , sum = 0;while (scanf("%d", &n) != EOF) {for (int i = 0; i <= n; i++) {sum += i;}printf("%d/n/n", sum);}return 0;}看起來沒什么問題,但是提交上去卻是Wrong Answer仔細(xì)看一下可以發(fā)現(xiàn)sum每完成一個(gè)SUM(n)后沒有清零,把值帶入了下一個(gè)SUM(n)的計(jì)算中,正確的代碼應(yīng)該為:#include<stdio.h>int main() {int n;while (scanf("%d", &n) != EOF) {int sum = 0; // sum應(yīng)該在這里定義for (int i = 0; i <= n; i++) {sum += i;}printf("%d/n/n", sum);}return 0;}如果用公式做sum = (n+1)*n/2 則需要注意另一個(gè)問題。題目說結(jié)果不超過32bit,但是如果用公式做的話中間值(n+1)*n可能超過32bit,提交如下代碼#include<stdio.h>int main() {int n, sum = 0;while (scanf("%d", &n) != EOF) {sum = (n+1)*n/2;printf("%d/n/n", sum);}return 0;}果然是Wrong Answer正確的代碼
#include<stdio.h>int main() {    int n, sum = 0;    while (scanf("%d", &n) != EOF) {        if(n%2==0)           sum=n/2*(1+n);        else           sum=(n+1)/2*n;        printf("%d/n/n", sum);    }    return 0;}新手入門,處處是坑。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平谷区| 卢湾区| 疏附县| 昔阳县| 红安县| 运城市| 丰城市| 甘泉县| 浮山县| 西林县| 讷河市| 南漳县| 酉阳| 昆山市| 泗阳县| 松原市| 探索| 阆中市| 金溪县| 凉城县| 长宁县| 扎鲁特旗| 乌什县| 汉川市| 湘潭县| 灵石县| 和林格尔县| 安岳县| 怀来县| 集安市| 沈阳市| 安西县| 胶南市| 贵定县| 开平市| 蒙城县| 怀来县| 民和| 怀远县| 大港区| 科技|