您的位置:首页 > 其它

数组计算阶乘

2011-05-17 01:33 190 查看
/**
*
* @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);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string class