标题:[求助]如何用C语言怎样求一个数的高精度阶乘?
只看楼主
走自己路的人
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-17
结帖率:100%
 问题点数:0 回复次数:3 
[求助]如何用C语言怎样求一个数的高精度阶乘?
如何用C语言怎样求一个数的高精度阶乘?谢谢了!
搜索更多相关主题的帖子: C语言 阶乘 高精度 
2007-10-03 23:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 

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


倚天照海花无数,流水高山心自知。
2007-10-03 23:31
走自己路的人
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-17
得分:0 
好的,谢谢.

2007-10-03 23:37
hundnn
Rank: 1
等 级:新手上路
帖 子:123
专家分:0
注 册:2007-8-23
得分:0 
#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);
}

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

哦耶
2008-05-02 10:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-174912-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.234228 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved