序列求和(考虑数据规模)

   考虑到数据规模的问题 

      Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算.
  其中 BigInteger 类是针对大整数的处理类,而 BigDecimal 类则是针对大小数的处理类.
  BigDecimal 类的实现用到了 BigInteger类,不同的是 BigDecimal 加入了小数的概念.
  float和Double只能用来做科学计算或者是工程计算;在商业计算中,对数字精度要求较高,必须使用 BigInteger 类和 BigDecimal 类,它支持任何精度的定点数,可以用它来精确计算货币值.
  BigDecimal类创建的是对象,不能使用传统的+、-、*、/等算术运算符直接对其进行数学运算,而必须调用其对应的方法.方法的参数也必须是BigDecimal类型的对象.

适合高精度

或者利用长整型long来解决 长度

import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) {
		long n;//long长度有19位是2的64次方-1,防止输入的数据超出正常的范围
		Scanner in = new Scanner(System.in);
		n = in.nextLong();
		long res=(n*(n+1))/2;
		System.out.println(res);
		in .close();
				
	}

	
}

 

你可能感兴趣的:(算法设计与分析,java)