·BigInteger 算100000阶乘报错 算9999阶乘无法显示出来

问题描述

BigInteger 算100000阶乘报错 有什么办法算5位以上的阶乘?
算9999阶乘无法显示出来

不知道是不是 System.out.println无法显示?

问题出现的环境背景及自己尝试过哪些方法

想算任意数的阶乘

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
package cn.tedu.file;
/**

  • 超大值阶乘

*/
import java.math.BigInteger;
import java.util.Scanner;

public class Demo01 {

public static void main(String[] args) {

Scanner x=new Scanner(System.in);

System.out.println("请输入需要求的阶乘:(支持超大数)");

long g=x.nextLong();

BigInteger t=BigInteger.valueOf(g);

System.out.println("结果是:"+j(t));

}

public static BigInteger j(BigInteger x) {

BigInteger a=new BigInteger("1");

if(x.equals(a)) {

return a;

}

BigInteger c=x.subtract(a);

return j(c).multiply(x);

}

}

你期待的结果是什么?实际看到的错误信息又是什么?

题目描述

算任意数的阶乘

题目来源及自己的思路

用BigInteger 算

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

图片描述图片描述图片描述
结果应该回应题目
100000阶乘报错 算9999阶乘无法显示出来

回答:

  1. 递归计算,层数太多堆栈溢出,正常现象,换循环就好了
  2. 可能结果太长(几万个字符)无法正常展示

以上是 ·BigInteger 算100000阶乘报错 算9999阶乘无法显示出来 的全部内容, 来源链接: utcz.com/p/176394.html

回到顶部