大数阶乘

来源:互联网 发布:mac爱奇艺视频转换器 编辑:程序博客网 时间:2024/05/23 00:06

#include<stdio.h>#include<math.h>void factorial(int n) // 这个函数内部就打印出了 N!只需在主函数声明下就得到 N!注意:声明时 将要求的 N 传入函数中{long a[10000];int i, j, l, c, m = 0, w;a[0] = 1;for (i = 1; i <= n; i++){c = 0;for (j = 0; j <= m; j++){a[j] = a[j] * i + c;c = a[j] / 10000;a[j] = a[j] % 10000;}if (c>0) { m++; a[m] = c; }}w = m * 4 + log10(a[m]*1.0) + 1;  //   这个  W 为结果的的位数  如还要求结果的位数  可以添加反回值 Wprintf("%ld", a[m]);for (i = m - 1; i >= 0; i--) printf("%4.4ld", a[i]);}int main(){int n;while (scanf("%d", &n)!=EOF){factorial(n);printf("\n");}return 0;}

0 0