用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

求阶乘的,能求大概几万的阶乘吧

2012-12-12 作者: Wadza举报

[c]代码库

#include<stdio.h>
#include<time.h>
#define N 200000
int a[N],jinwei=0,temp,j,i,b,x;
time_t start,end;
int main(void)
{
    start=time(NULL);

    a[0]=1;
    for(i=1;i<N;i++)
    {
        a[i]=0;
    }
    printf("输入待求阶乘数:\n");
    scanf("%d",&x);
    for(i=2;i<=x;i++)
    {
        for(j=0;j<N;j++)
        {
            temp=a[j]*i+jinwei;
            a[j]=temp%10;
            jinwei=temp/10;
        }
    }
    for(b=N-1;a[b]==0;b--);
    printf("有%d位数字!\n",b+1);
    for(;b>=0;b--)
    {
        printf("%d",a[b]);
    }
    end=time(NULL);
    printf("用了%d秒的时间!",end-start);
    return 0;
}
//这个算法很多冗余,大家可以帮忙修改下,以便算的更快。
//这个程序代码是将一个很大的数挨个显示出来,虽然能显示很大的数字,但是很慢。可以求最后答案的位数,以及计算机用掉的时间,直接修改宏定义N的值能够修改可求数字的最大位数,本代码设为200000,能求答案的容量为200000,同学们也可测试下自己机器的处理器怎么样,我的很差,此法求10000的阶乘用了整整100秒,大家都来试试吧

[代码运行效果截图]


求阶乘的,能求大概几万的阶乘吧


网友评论    (发表评论)

共2 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...