编程论坛's Archiver

走自己路的人 发表于 2007-10-3 23:11

[求助]如何用C语言怎样求一个数的高精度阶乘?

如何用C语言怎样求一个数的高精度阶乘?谢谢了!

nuciewth 发表于 2007-10-3 23:31

<P>到C区看诸葛孔明的高精度阶乘帖子.<BR>自己搜索一下啦.</P>

走自己路的人 发表于 2007-10-3 23:37

好的,谢谢.

hundnn 发表于 2008-5-2 10:47

#include <iostream>
#include <cstdio>
using namespace std;
void factorial(int);
int main(void)
{
    int number;
    while(scanf("%d",&number)!=EOF){
        factorial(number);
        cout << endl;
    }
    return 0;
}
   
void factorial(int a)
{   
   
    int i,j;
    int result[50000];
    int count = 1;
    int carry = 0;
    int temp = 0;
   
    result[1]=1;
    for(i = 2; i <= a; i ++){
        for(j = 1; j <=count; j ++){
            temp = result[j] * i + carry;
            result[j] = temp % 10000;
            carry = (int)(temp / 10000);
        }
              
        while(carry){
            count ++;
            result[count] = (carry % 10000);
            carry = (int)(carry / 10000);
        }
    }
    cout << result[count];
    for(i =count-1;i>=1; --i)
       printf("%04d",result);
}

复制别人的././希望对你有用./

哦耶

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.