标题:【原创】大数的阶乘
只看楼主
tyzqqq
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-2-6
得分:0 
模拟公式
2010-05-07 10:29
xieshen947
Rank: 2
等 级:论坛游民
帖 子:58
专家分:65
注 册:2010-9-4
得分:0 
我有这样的想法多线程同时算
这边算a=1*......(5000)
      b=5001*....(10000)
        ......
       ......
    n=95000-100000
   
    x=a*b*....*n
不过多线程在c#学过,现在不会了
2010-12-14 20:24
善ing
Rank: 2
来 自:华东师范
等 级:论坛游民
帖 子:34
专家分:19
注 册:2012-11-18
得分:0 
#include<stdio.h>
#define N 10000
int main()
{
    long x,y,z,a[N],n,c;
    {
        while(scanf("%ld",&n)>0)
        {
            a[0]=1;
            x=0;
            for(y=1;y<=n;y++)
            {
                c=0;
                for(z=0;z<=x;z++)
                {
                a[z]=a[z]*y+c;
                c=a[z]/N;
                a[z]%=N;
                }
                if(c>0)
                {
                x++;
                a[x]=c;
                }
             }
            // printf("%ld",a[x]);
             for(y=x;y>=0;y--)
                 printf("%.4ld",a[y]);  //补0!!
             printf("\n"); //.4=lg(N);
         }
    return 0;
    }
}
贴个精简代码,非原创

邂逅c  (⊙o⊙)
2012-12-02 01:19
唐书豪
Rank: 2
等 级:论坛游民
帖 子:28
专家分:52
注 册:2013-5-10
得分:0 
我一直不知道这么大的数是怎样表示出来的,照理说用%d打不出这么多位数字吧,但是我的电脑输入9000运行后得到的数值个数是31682.
还有一个很纳闷的问题是,高精度的表示,用duble表示显示小数点后17位之前表示,17到518位都是0,再往后都是乱码。。。
2013-10-05 20:30



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




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

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