阶乘计算编写程序,对给定的n(n≤100),计算并输出k的阶乘k!(k=1,2,…,n)的全部有效数字.由于要求的整数可能大大超出一般整数的位数,程序用一维数组存储长整数,存储长整数数组的每个元素只存储长整数的一位数字.如有m位成整数N用数组a[ ]存储:N=a[m]×10m-1+a[m-1]×10m-2+ … +a[2]×101+a[1]×100并用a[0]存储长整数N的位数m,即a[0]=m.按上述约定,数组的每个元素存储k的阶乘k!的一位数字,并从低位到高位依次存于数组的第二个元素、第三个元素…….例如,=120,在数组中的存储形式为:3 0 2 1 ……首元素3表示长整数是一个3位数,接着是低位到高位依次是0、2、1,表示成整数1203,
问题描述:
阶乘计算
编写程序,对给定的n(n≤100),计算并输出k的阶乘k!(k=1,2,…,n)的全部有效数字.由于要求的整数可能大大超出一般整数的位数,程序用一维数组存储长整数,存储长整数数组的每个元素只存储长整数的一位数字.如有m位成整数N用数组a[ ]存储:
N=a[m]×10m-1+a[m-1]×10m-2+ … +a[2]×101+a[1]×100
并用a[0]存储长整数N的位数m,即a[0]=m.按上述约定,数组的每个元素存储k的阶乘k!的一位数字,并从低位到高位依次存于数组的第二个元素、第三个元素…….例如,=120,在数组中的存储形式为:
3 0 2 1 ……
首元素3表示长整数是一个3位数,接着是低位到高位依次是0、2、1,表示成整数120
3,
答
void fact(int n,int jc[])
{ int i,j,s;
int sum[300]={0}; //临时存储计算结果
sum[0]=1;
for(i=1;i