c语言求20000的阶乘
计算阶乘最经典的算法大概就是雨中飞燕的“四行代码”了,下面是雨中飞燕的代码,对于20000的阶乘数运算时间数以秒记:
#include<stdio.h> //雨中飞燕之作
#define N 20000 //要计算的N
long s[N]={1},n=10000,t=2,a,b,m;main(){
for(;a<=m||++t<=N&&(a=b=0,1);m==a++&&b&&m++)
s[a]=(b+=s[a]*t)%n,b/=n;
for(printf("%d",s[m]);m--;)printf("%04d",s[m]);}
不计预处理命令,共四行代码,至于代码的具体原理,可以看 天天唯C 论坛的一篇题为 “算法学习笔记000-解析雨中飞燕的阶乘” 帖子。
标签:阶乘,语言
版权声明:文章由 酷百书 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.kubaishu.com/answer/128288.html