为了账号安全,请及时绑定邮箱和手机立即绑定

java如何存储巨大的数字比如100!

java如何存储巨大的数字比如100!

不负相思意 2018-12-30 04:00:12
java如何存储巨大的数字比如100!
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

存储100的阶乘,这种超大数字,java 还是提供了一些类的比如 

  • 1: 使用BigInteger或者 BigDecimal...

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

import java.math.BigDecimal;

import java.math.BigInteger;

// 测试类  

public class Demo {

    public static void main(String[] args) {

        BigDecimal s1 = jieCheng(100);//BigDecimal存100的阶乘还是没有问题的

        BigInteger bi=s1.toBigInteger();//BigInteger存100的阶乘也可以

        System.out.println(bi);

        System.out.println(s1);

    }

 

     

    public static BigDecimal jieCheng(int num) {

        BigDecimal sum = new BigDecimal("1");

        if (num < 0) {

            throw new IllegalArgumentException("参数不能为负!");

        }

        for (int i = 1; i <= num; i++) {

            sum =sum.multiply(new BigDecimal(i));//循环进行累乘

        }

        return sum;// 返回结果字符串

    }

}

  • 如果是BigDecimal都处理不了超大数字,  那么可以使用String来存储

String str ="123...";//这种方式,是明文写入代码的,字符串长度不能太长.

所以太长的文本应该写入字符串文本中. 使用的时候使用IO进行读取

 


查看完整回答
反对 回复 2019-01-03
  • 1 回答
  • 0 关注
  • 630 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信