http://acm.hdu.edu.cn/showproblem.php?pid=1001
#includeint main() { int i,n; while(scanf("%d",&n) !=EOF) { int sum=0; for(i=1;i<=n;i++) { sum+=i; } printf("%d\n\n",sum); } }
#includeint main() { int n; long result; while(scanf("%ld",&n) !=EOF) { if(n%2==0) { result = n/2*(1+n); } else { result = (1+n)/2*n; } printf("%ld\n\n",result); } }
另一种方法就是使用等差数列的求和公式,然而存在的问题就是在进行 n*(n+1) 运算的时候,可能会超出存储的范围,所以我们可以考虑,先进行除法运算,这样就保证了结果的合法性。
最后我们需要注意的一点就是,该题的输出格式为每条数据后需要进行两次换行。