首页 > 编程知识 正文

求1的阶乘加到20的阶乘,c语言计算1000的阶乘

时间:2023-05-04 05:02:33 阅读:211884 作者:1841

#include

#define N 1000

#define M 3000

void hmove(int arr慈祥的睫毛膏)

{

int i;

for(i=M;i>1;i--)

{

}

}

void move(int arr慈祥的睫毛膏)

{

int i;

for(i=M;i>0;i--)

{

}

}

void sum(int a慈祥的睫毛膏,int b慈祥的睫毛膏)

{

int i,c;

int flag = 0;

for(i=0;i

{

c=a[i]+b[i]+flag;

if(c>9)

{

a[i]=c%10;

flag=c/10;

}

else

{

a[i]=c;

flag=0;

}

}

}

void cheng(int arr慈祥的睫毛膏,int j)

{

int i,flag=0,c;

for(i=0;i

{

c=j*arr[i]+flag;

if(c>9)

{

flag=c/10;

}

else

{

flag=0;

}

}

}

int main()

{

int i=N,j,a[M],b[M],c[M];

for(i=0;i

{

a[i]=0; //存储全部 乘积以及个位乘积

b[i]=0; //存储十位乘积

c[i]=0;

}

a[0]=0;a[1]=0;a[2]=0;a[3]=1;

b[0]=0;b[1]=0;b[2]=0;b[3]=1;

c[0]=0;c[1]=0;c[2]=0;c[3]=1;

int x,y,z,flag=0;

for(i=999;i>0;i--)

{

if(i<100)

{

x=i%10;

cheng(b,x);

cheng(a,y);

move(a);

sum(a,b);

for(j=0;j

{ b[j]=a[j];}

}

else

{

x=i%10;

z=i/100;

cheng(b,x);

cheng(a,y);

move(a);

sum(a,b);

cheng(c,z);

hmove(c);

sum(c,a);

for(j=0;j

{

b[j]=c[j];

a[j]=c[j];

}

}

}

for(i=0;i

{if(a[i]==2)

flag++;

}

printf("有%d个2",flag);

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。