大数乘法

int a[100000010];
int main() {
    int i,len,n;
    while(scanf("%d",&n)!=EOF){
    	a[1]=1;
    	len=1;
    	for(int k=2;k<=n;k++){
        	for(i=1;i<=len;i++){
           		a[i]=a[i]*k;
      	 	}
       		for(i=1; i<=len; i++) {
           		if(a[i]>=10) {
               		a[i+1]+=a[i]/10;
               		a[i]%=10;
           		}
       		}
      		while(a[len+1]>0) {
           		len++;
             	a[len+1]=a[len]/10;
             	a[len]=a[len]%10;
         	}
     	}
     	for(i=len; i>=1; i--)
         	printf("%d",a[i]);
        printf("\n");
	}
	return 0;
 }

 

posted @ 2018-02-05 18:24  楼主好菜啊  阅读(130)  评论(0编辑  收藏  举报