题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1001
题目大意:对于给定的整数 n, 计算 1 + 2 + 3 + ... + n.
题目分析:水题,可用以下两种方法求解:
①循环求和法:直接求1+2+…+n。
②公式法:1+2+…+n=n*(n+1)/2,使用此法要防止溢出。
//C++代码
//循环求和法
#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
int ans=0;
for(int i=1;i<=n;i++) ans+=i;
cout<<ans<<endl<<endl;
}
return 0;
}
//公式法:1+2+...+n=n*(n+1)/2,使用此法要防止溢出
#include<iostream>
using namespace std;
int main(){
int n;
while(cin>>n){
if(n%2==0) cout<<n/2*(n+1)<<endl<<endl;
else cout<<(n+1)/2*n<<endl<<endl;
}
return 0;
}
//C代码
#include<stdio.h>
int main(){
int n,i,ans;
while(scanf("%d",&n)!=EOF){
ans=0;
for(i=1;i<=n;i++) ans+=i;
printf("%d\n\n",ans);
}
return 0;
}
//Java代码
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
while(cin.hasNextInt()){
int n=cin.nextInt();
int sum=0;
for(int i=1;i<=n;i++) sum+=i;
System.out.println(sum);
System.out.println();
}
}
}
{Pascal代码}
program lqw(input,output);
var
n,i,sum:longint;
begin
while not eoln do
begin
readln(n);
sum:=0;
for i:=1 to n do
sum:=sum+i;
writeln(sum);
writeln;
end;
end.