Java计算1到100的阶乘的和(超过long范围的整数)

  • 整数型:
  1. int范围:-2^31~(2^31-1),即:-2147483648~2147483647;
  2. long范围:-2^63~(2^63-1),即:-9223372036854775808~9223372036854775807;
  • 浮点型:只能计算16位的有效数字
  • 大数字计算方法:Java中提供了针对大数字的操作类,即 java.math.BigInteger 类和 java.math.BigDecimal 类(即java.math.BigDecimal-java.math包下类).
  • 区别: BigInteger 类是针对大整数的处理类,BigDecimal 类是针对大小数的处理类, 加入了小数的概念.
  • //初始化方式:不像String可以直接赋值,而是和其他自定义的类一样,需要调用它的构造器进行初始化。这个类的取值范围原则上是没有上限的,取决于计算机内存。
  • 常用的方法:

 

更多的方法请自行查找API

  • 最终实现
import java.math.BigInteger;

public class Demon03 {
    public static void main(String[] args){
        BigInteger num = new BigInteger("0");
        BigInteger n = new BigInteger("1");
        BigInteger m = new BigInteger("1");
        BigInteger l = new BigInteger("1");
        BigInteger k = new BigInteger("100");
        do{
            num = num.add(m);
            n = n.add(l);
            m = m.multiply(n);
        }while(n.compareTo(k)<0);
/*compareTo():比较字符串,如果相等,则返回值 0; 如果此字符串小于字符串参数,则返回一个小于 0 的值; 如果此字符串大于字符串参数,则返回一个大于 0 的值*/ System.out.println("1!+2!+...+100!="+num); } }

 

posted @ 2022-03-04 20:24  cvhgfds  阅读(709)  评论(1)    收藏  举报