注册 登录
编程论坛 C++教室

ACM中的大数阶乘,看不懂别人的代码。能帮我看一下吗

Theblueman 发布于 2018-05-24 18:59, 1926 次点击
程序代码:

#include <stdio.h>
#include <stdlib.h>
#define N 5000
int main()
{
     int x[N];
     x[0]=1;
    for(int i=1;i<N;i++)
    {
     x[i]=0;
    }
   
   
    int c;
    scanf("%d",&c);
   
   
    int i,j,temp=0,temp2;//这一块看不懂
    for(i=1;i<=c;i++)
    {
        for(j=0;j<N-1;j++)
        {   
        temp2=x[j]*i+temp;
        x[j]=temp2%10;
        temp=(temp2-temp2%10)/10;
        }
    }
   
   
    int k=0;        //输出
    for(j=N-2;j>=0;j--)
    {
        if(x[j]==0 && k==0)
         {

        }
   
         else
        {
        printf("%d",x[j]);
        k++;
        }
    }
    printf("\n");
    return 0;
}
3 回复
#2
PandaHero2018-06-05 23:57
你把打问号的内容填完,再看他的算法 你就懂了。

  0 1 2 3 4  5
X            9
--------------
  ? ? ? ?  ?  ?
#3
hzr2018-06-06 20:24
就是先初始化一下
1