大数阶乘

来源:互联网 发布:bluestack mac 编辑:程序博客网 时间:2024/06/05 06:36

问题描述:  N!=1*2*3*4*5*........*N


代码如下:

#include "stdio.h"#define MAX 1000int main(){int n;scanf("%d",&n);    int i,j;    int a[MAX];        //估算存数运算结果的位数    int p,h;           //p存储当前结果的位数,h为进位    a[1]=1;    p=1;      for(i=2;i<=n;i++)   //循环与2,3,4.....n相乘    {        for(j=1,h=0;j<=p;j++)    //让a[]的每位与i相乘        {            a[j]=a[j]*i+h;            h=a[j]/10;            a[j]=a[j]%10;        }        while(h>0)         //进位        {            a[j]=h%10;            h=h/10;            j++;        }        p=j-1;            //将当前的位数赋给p    }    for(i=p;i>=2;i--){//输出结果        printf("%d",a[i]);    } return 0;}

运行结果:


0 0
原创粉丝点击