import java.util.Scanner;
public class Biginteger {
public static void main(String[] args) {
System.out.println("请输入要求阶乘数:");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int arr[];
arr = new int[n * 4];
arr[0] = 1;
int p = 0; //记录当前数字位数
for(int i=1;i<=n;i++)
{
int t = 0; //记录进位
for(int j = 0; j < p; j++){ //将最后一位之前的数字确定,并且确定最后一位的进位
arr[j] = arr[j] * i + t;
t = 0;
if(arr[j] >= 10){
t = arr[j] / 10;
arr[j] = arr[j] % 10;
}
}
int cur = arr[p] * i + t;
while(cur >= 10){
arr[p++] = cur % 10;
cur /= 10;
}
arr[p] = cur;
}
//数组长度就是前一阶乘长度-1+最后一位乘以n的结果长度
for(int j=p;j>=0;j--)
{
System.out.print(arr[j]);
}
}
}
Java大数阶乘(数组处理)
最新推荐文章于 2022-07-13 11:43:03 发布