·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阶乘无法显示出来
回答:
- 递归计算,层数太多堆栈溢出,正常现象,换循环就好了
- 可能结果太长(几万个字符)无法正常展示
以上是 ·BigInteger 算100000阶乘报错 算9999阶乘无法显示出来 的全部内容, 来源链接: utcz.com/p/176394.html