问题描述
求1+2+3+...+n的值。
输入格式
输入包括一个整数n。
输出格式
输出一行,包括一个整数,表示1+2+3+...+n的值。
这个问题一开始想复杂了,一开始我想到的是Double进行计算,心想着它可以表示更大的数字,大不了运行出结果之后再转回来,但是等到测试时才发现会报内存超限的错误,下面是不完备的代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
Double n = sc.nextDouble ();
long sum = 0;
for (int i = 1; i <= n; i++) {
sum =(Double) sum + i;
}
System.out.print(sum.intValue());
}
}
着实有点转弯抹角了。。。。。。
下面是正确的代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long sum = 0;
for (int i = 1; i <= n; i++) {
sum = sum + i;
}
System.out.print(sum);
}
}
这里的话是直接将运算的和用long类型进行接收,这样就可以防止因为大数据的出现而报错的情况。
|