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 @   cvhgfds  阅读(697)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示