| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2086 人关注过本帖
标题:[求助]如何用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
快速回复:[求助]如何用C语言怎样求一个数的高精度阶乘?
数据加载中...
 
   



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

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