java的BigDecimal
一般设计到高精度的加法或乘法或者阶乘的求和积都会用到BigDecimal这个类。
import java.util.*;
import java.math.BigDecimal;
import java.lang.*;
public class Main {
public static BigDecimal fun2(int n)
{
BigDecimal result = new BigDecimal(1);
BigDecimal a;
for(int i=2;i<=n;i++)
{
a= new BigDecimal(i);
result = result.multiply(a);
}
return result;
}public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int n=in.nextInt();
System.out.print(n+"!"+"="+fun2(n));
}
}
运行结果:
用BigDecimal 一般求比较的数,如果求3!或10!也可以递归来实现。
code 如下:
ublic static int fun(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*fun(n-1);
}
}
这是用递归求阶乘的方法。不适用求大数的。
对于大数的加法或者乘法或者就阶乘也可以数组来做,不过比较复杂。用BigDecimal方便。
如果有更好的方法希望你们来提供。