#include
#define N 10000
int main()
{
int a[N]={1};
int k=0,l=1,n;
int i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=0;j {
a[j]=a[j]*i+k;
k=a[j]/10000;
a[j]=a[j]%10000;
}
if(k)
{
a[j]=k;
l++;
k=0;
}
}
printf("%d",a[l-1]);
for(i=l-2;i>=0;i--)
printf("%04d",a[i]);
printf("\n");
return 0;
}
哪位大神可以告诉我这代码是什么意思怎么运行的,看不懂小白一名
#define N 10000
int main()
{
int a[N] = { 1 };//
int k = 0, l = 1, n;
int i, j;
scanf("%d", &n);//输入一个整数
for (i = 1; i <= n; i++)//
{
for (j = 0; j<i;j++)//
{
a[j] = a[j] * i + k;//求阶乘的
//给出上限10000,如果在所得阶乘结果在范围内,那么值不变;否则,去掉最高位
k = a[j] / 10000;
a[j] = a[j] % 10000;
}
if (k)//判断是否超出上限10000
{
a[j] = k;
l++;
k = 0;
}
}
printf("%d", a[l - 1]);
//计算结果:如:输入10,则输出8800,其正确结果为:3628800
for (i = l - 2; i >= 0; i--)//
printf("%04d", a[i]);
printf("\n");
system("pause");
return 0;
}
重点就是两个for循环,你把基本的语法看懂了应该这个不难吧。