/** * * @author Shura * 函数名: *[public static int[] fuc()]: * *功能:用数组计算阶乘 */ public class factorial { public static int M=40; public static int[] fuc(int n) { int[] Data=new int[40]; for(int i=0;i<M;i++){ Data[i]=0; } Data[0]=1; //Data[0]没有用到,没有实际意义 Data[1]=1; //初始化为1 int Digit=1; //初始化有意义的长度为1 for(int i=1;i<n+1;i++) { //每一位分别乘以i for(int j=1;j<Digit+1;j++){ Data[j]*=i; } for(int j=1;j<Digit+1;j++){ if(Data[j]>10){ //j之前的一定已经被处理过了 for(int r=j;r<Digit+1;r++){ //先判断最后一个字符是否>10,大于10,Digit++ if(Data[Digit]>10) Digit++; //进位处理 Data[r+1]+=Data[r]/10; Data[r]=Data[r]%10; } } } System.out.print(i+"!="); for(int k=Digit;k>0;k--) { System.out.print(Data[k]); } System.out.println(); } return Data; } public static void main(String args[]){ factorial fa=new factorial(); fuc(34); } }