=10000) b=5; else if(res"/>

[汇总]c语言求大数阶乘

2017-10-08 4页 doc 15KB 19阅读

用户头像

is_496339

暂无简介

举报
[汇总]c语言求大数阶乘[汇总]c语言求大数阶乘 大数的阶乘 #include void main() { int a,b; int i,j,k,n,carry,count; unsigned long int result[500]={0}; do { a=0; result[0]=1; printf("qing shu ru yi ge zheng shu\n"); scanf("%d",&n); if (n0) ++a; } if(result[a]>=10000) b=5; else if(result[a]...
[汇总]c语言求大数阶乘
[汇总]c语言求大数阶乘 大数的阶乘 #include void main() { int a,b; int i,j,k,n,carry,count; unsigned long int result[500]={0}; do { a=0; result[0]=1; printf("qing shu ru yi ge zheng shu\n"); scanf("%d",&n); if (n<0) { printf("qing chong xin shu ru yi ge zheng shu\n"); continue;} else if(n==0) {printf("%d!=%d\n",n,1);} else { for(i=2;i<=n;++i) { for(j=0;j<=a;++j) result[j]*=i; for(k=0;k<=a;++k) { carry=result[k]/100000; result[k]%=100000; result[k+1]+=carry; } if(result[a+1]>0) ++a; } if(result[a]>=10000) b=5; else if(result[a]>=1000) b=4; else if(result[a]>=100) b=3; else if(result[a]>=10) b=2; else b=1; printf("\n%d!=\n",n); printf("%5d",result[a]); result[a]=0; count=1; for(i=a-1;i>=0;--i ) { printf("%05d",result[i]); result[i]=0; if(++count%10==0) printf("\n"); } if(a>=1) printf("\ngong you %d wei\n",b+a*5) ; else printf("\ngong you %d wei\n",b); printf("\n"); } } while(n!=0); } 写了这么长的东西,把自己都绕迷了。高手几句话就概括了,每句浓缩的都是精华,这就是差距: #include int main(void) { long a[9000]={1,0},i,c,len,pos=1; int n; printf("请输入你要计算阶乘的数:\n"); scanf("%d",&n); pos=n; for ( len=1;n>1; n--) { for (c=0,i=0; i0)?len++:0; } printf("\n\n%d的阶乘:\n",pos); for( len--,printf("%d",a[len--]);len>=0; len--) printf("%04d",a[len]); printf("\n"); return 0; }
/
本文档为【[汇总]c语言求大数阶乘】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索