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

首頁 > 學院 > 開發設計 > 正文

HDU 1001 Sum Problem

2019-11-14 09:43:19
字體:
來源:轉載
供稿:網友

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 新手的水題,本來沒什么難度,但對于像我這樣初上路的新手,還是會遇到很多問題,寫下來促進自己提升。首先可以直接用疊加#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仔細看一下可以發現sum每完成一個SUM(n)后沒有清零,把值帶入了下一個SUM(n)的計算中,正確的代碼應該為:#include<stdio.h>int main() {int n;while (scanf("%d", &n) != EOF) {int sum = 0; // sum應該在這里定義for (int i = 0; i <= n; i++) {sum += i;}printf("%d/n/n", sum);}return 0;}如果用公式做sum = (n+1)*n/2 則需要注意另一個問題。題目說結果不超過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;}新手入門,處處是坑。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂温| 连南| 炉霍县| 张家口市| 桦甸市| 永康市| 出国| 仁化县| 枣庄市| 旬阳县| 天津市| 辽阳县| 舟山市| 任丘市| 阿克苏市| 慈溪市| 合肥市| 武义县| 宽城| 兴和县| 喀什市| 漳浦县| 观塘区| 奉化市| 邹平县| 山阳县| 神木县| 东光县| 外汇| 右玉县| 沁水县| 宽城| 桂平市| 渭源县| 康马县| 阿合奇县| 桃源县| 永吉县| 厦门市| 历史| 宁晋县|