您的位置:首页 > 其它

大数_高精度阶乘

2014-01-02 21:19 113 查看
#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int a[20000] = {0};

int carry = 0;

int digit = 1;

void jiecheng(int m){

int i, j;

int k;

a[0] = 1;

for(i = 2; i <= m; i++){

for(j = 0; j < digit; j++){

a[j] = a[j] * i + carry;

carry = a[j] / 10;

a[j] = a[j] % 10;

}

k = 0;

while(carry != 0){

a[digit] += carry % 10;

digit++;

carry = carry / 10;

}

}

}

int main()

{

int n;

int i;

scanf("%d", &n);

getchar();

jiecheng(n);

for(i = digit - 1; i >= 0; i--){

printf("%d", a[i]);

}

printf("\n");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: