今日:
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

posted on 2025-09-24 23:10  douzishuo  阅读(5)  评论(0)    收藏  举报