HDU 1042 N! 大数相乘

来源:互联网 发布:c语言自学 编辑:程序博客网 时间:2024/05/18 03:48
#include<stdio.h>#include<string.h>#include<stdlib.h>const int maxn=50000;int f[maxn];int main(){    int i,j,n;    while(scanf("%d",&n)==1)    {        memset(f,0,sizeof(f));        f[0]=1;        for(i=2;i<=n;i++)        {            int c=0;            for(j=0;j<maxn;j++)            {                int s=f[j]*i+c;                f[j]=s%100000;                c=s/100000;            }        }       for(j=maxn-1;j>=0;j--)            if(f[j])                break;                printf ("%d" , f[j]) ;        for(i=j-1;i>=0;i--)            printf("%05d",f[i]);            printf("\n");    }return 0;}

这个题是在师哥的大力讲解下,才略懂一点,还不是完全明白,这是一个大数相乘。看看代码吧。
原创粉丝点击