Latex中添加url
Review of terms in Computation

大数阶乘运算

Jimmy posted @ 2011年9月14日 16:55 in Others , 1422 阅读

使用数组存储最终结果,并模拟进位

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 1000	
int main()
{	
    int data[MAXSIZE+1];
    int digit ;
    int i,j,r,k;
    int n;
    while(scanf("%d",&n) != EOF)
    {
	for(i=1;i<=MAXSIZE;i++)
	    data[i] = 0;
	data[1] = 1;
	digit = 1;
	
	for(i=1; i<=n; i++)
	{
	    for(j=1;j<=digit;j++)
		data[j] *= i;
	    for(j=1;j<=digit;j++)
	    {
		if(data[j] > 10)
		{
		    for(r=1;r<=digit;r++)
		    {
		        if(data[digit] > 9)
			    digit++;
			data[r+1] += data[r]/10;
			data[r] = data[r]%10;
		    }
		}
	    }
	}
	for(k=digit;k>0;k--)
	    printf("%d",data[k]);
	printf("\n");
    }
    return 0;
}

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter