Re: 久等了 :)

看板ck53rd313作者 (副攻副攻)時間22年前 (2001/10/26 14:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
完成版啦... #include<stdio.h> #include<math.h> #define ZZZ 10000 int mal(long int*,int); void pr(long int*,int); int main(void) { long int ans[ZZZ]={0}; ans[ZZZ-1]=1; int n,prnum; printf("Calculate n! n=? "); scanf("%d",&n); for(int i=1;i<=n;i++) prnum=mal(ans,i); pr(ans,prnum); return 0; } int mal(long int* cal,int x) { static int dig=1; /*位數*/ for(int i=ZZZ-dig;i<ZZZ;i++) *(cal+i) *= x; for(i = ZZZ-1;i>=ZZZ-dig+1;i--) { if (*(cal+i)>9) { *(cal+i-1) += *(cal+i)/10; *(cal+i) %= 10; } } if(*(cal+i)>9) { dig += floor(log10(*(cal+i))); for(int z=1;z<=floor(log10(*(cal+i)));z++) { *(cal+i-z) += *(cal+i)/10; *(cal+i) %=10; } } return dig; } void pr(long int* in,int i ) {printf("\n\n"); for(int j = i ; j>0;j--) { int prnow=ZZZ-j; printf("%d",*(in+prnow)); }printf("\n\n");return; } -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 140.112.30.127
文章代碼(AID): #xsGLW00 (ck53rd313)
文章代碼(AID): #xsGLW00 (ck53rd313)