c语言代码:
#include <stdio.h>
#define N 50
void qiujieceng(int a)
{
int i,j,k,n;
int data[N];
int bit=1;
for(i=1;i<N+1;i++)
data[i]=0;
data[1]=1;
for(i=1;i<a+1;i++)//遍历每个数的阶数
{
for(j=1;j<bit+1;j++)//计算阶数:每一位乘以要求的阶数,结果仍然在本位上
{
data[j]*=i;
}
for(j=1;j<bit+1;j++)//遍历每一位,看是否有进位的需要
{
if(data[j]>10)
{
for(n=1;n<bit+1;n++)//当数组中所表示的数超过一位的时候,考虑将十位上的数字向前移位
{
if(data[bit]>10)//根据最高位是否需要进位,判断位数是否需要增加。
bit++;
data[n+1]+=data[n]/10;//当最高位不需要进位的时候,这个步骤仍然需要
data[n]=data[n]%10;//低位进位
}
}
}
printf("%d!=",i);
for(k=bit;k>0;k--)//先输出高位,所以k=bit
{
printf("%d",data[k]);
}
printf("\n");
}
}
int main()
{
int m;
printf("请输入您要求的数m:\n");
scanf("%d",&m);
qiujieceng(m);
return 0;
}
执行结果: