·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阶乘无法显示出来

阅读 2k
1 个回答
  1. 递归计算,层数太多堆栈溢出,正常现象,换循环就好了
  2. 可能结果太长(几万个字符)无法正常展示
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题