高精度阶乘
2014-01-18 20:41
113 查看
#include <stdio.h> #include <string.h> #define MAXSIZE 3000 int main(void) { int a[MAXSIZE]; int i,j,n; scanf("%d",&n); memset(a,0,sizeof(a)); //把数组所有元素初始为0 a[0]=1; //0的阶乘为1 for(i=2;i<=n;++i) { int c=0; //代表进位数 for(j=0;j<MAXSIZE;++j) { int s = a[j] * i + c; //进行当前位数的阶乘 a[j]= s % 10; //取余得当前位数 c= s/10; } } for(j = MAXSIZE-1; j >= 0; --j) if(a[j]){ break;} //去掉前导0 for(i = j; i >= 0; --i) printf("%d", a[i]); //倒序输出 putchar('\n'); return 0; }这个数组的算法是开一个数组来模拟阶乘的位的,对每一次阶乘都做一次进位的循环,最后去掉前导0,便能得出结果
相关文章推荐
- HDU 1042 N!(高精度计算阶乘)
- 【模板】高精度阶乘
- 算法篇-高精度-阶乘的精确值
- ACM HDU 1042 N!(高精度计算阶乘)
- HDU 1042 N!(高精度计算阶乘)
- (C语言)高精度阶乘
- HDOJ1042(高精度阶乘 JAVA)
- HDU 1042 N! 阶乘 高精度(java)
- 大数,高精度计算---大数阶乘
- HDU 1042 大数据、高精度,求n的阶乘
- 高精度阶乘(递归版)
- 高精度运算之阶乘
- 高精度算阶乘
- 高精度 求1000以内阶乘 (初学)C++版
- 高精度阶乘运算
- 阶乘之和 高精度
- HDU 1042 N!(高精度计算阶乘)
- 蓝桥杯基础练习 阶乘计算(高精度方法)
- 高精度-n的阶乘
- 高精度加减法 1000阶乘求法