今日:
1.50阶乘的程序
Way 1:创建BigInteger对象
优:近乎无穷的取值
缺:性能开销大,内存占用多
package pack1;
import java.math.BigInteger;
public class Test1 {
public static void main(String[] args) {
BigInteger sum=BigInteger.valueOf(1);
for(int i=1;i<=50;i++)
{
sum=sum.multiply(BigInteger.valueOf(i));
}
System.out.println(sum);
}
}
50!=30414093201713378043612608166064768844377641568960512000000000000
Way 2;
数组存储
优:精度自定,数组实现
缺:实现繁琐,性能低
package pack1;
import java.math.BigInteger;
public class Test1 {
static int arr1[]=new int[10086];
public static void main(String[] args) {
arr1[0]=1;
int x=50;
int weishu=1;
for(int i=2;i<=x;i++)
{ int temp=0;
for(int j=0;j<weishu;j++)
{
int p=arr1[j]*i+temp;
arr1[j]=p%10;
temp=p/10;
}
while(temp>0)
{
arr1[weishu++]=temp%10;
temp=temp/10;
}
}
for(int i=weishu-1;i>=0;i--)
{
System.out.print(arr1[i]);
}
}
}
50!=30414093201713378043612608166064768844377641568960512000000000000