| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖
标题:哥们姐妹们,小弟请教1000的阶乘怎么做?每一位数都的打出来……
只看楼主 加入收藏
jiangguohai
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-10-27
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:4 
哥们姐妹们,小弟请教1000的阶乘怎么做?每一位数都的打出来……
拜托啦……牛人
搜索更多相关主题的帖子: 位数 阶乘 姐妹 哥们 
2009-10-28 16:54
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:4 
#include<stdio.h>  
#define N 1000    //要计算的N  
long s[N]={1,1},n=N,t=2,a=1,b=0,p=10000;  
int main()//雨中飞燕之作  
{  
    for(;a<=*s||(++t<=n?(b=0,a=1):0);(*s==a++&&b)?(*s)++:0)  
        s[a]=(b+=s[a]*t)%p,b/=p;  
    for(printf("%d",s[*s]);--*s>0;)printf("%04d",s[*s]);  
    return 0;  
}  
2009-10-28 17:01
godbless
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:216
专家分:950
注 册:2009-7-24
收藏
得分:6 
我把雨中飞燕的程序拆开了就是下面的,应该容易懂了.

#include <stdio.h>  
#include <stdlib.h>  
 
#define N 1000    //要计算的N  
 
long s[N]={1,1},n=N,t=2,a=1,b=0,p=10000;  
int temp;  
 
int main()//雨中飞燕之作之拆解版
{  
    for(;;)  
       {  
        b+=s[a]*t;  
        s[a]=b%p;  
        b/=p;  
        if((*s==a)&&b)  
          (*s)++;  
        ++a;  
        if(a>*s)  
          if(++t<=n) {b=0;a=1;}  
            else break;  
       }  
    printf("%d",s[*s]);  
    for(;--*s>0;)  
       printf("%04d",s[*s]);  
    system("pause");  
    return 0;  
}
2009-10-28 17:03
jiangguohai
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-10-27
收藏
得分:0 
天啊……难懂……不过谢啦
2009-10-28 17:09
jiangguohai
Rank: 1
等 级:新手上路
帖 子:13
专家分:1
注 册:2009-10-27
收藏
得分:0 
能不能解释一下思路啊……我理不清……
2009-10-28 17:14
快速回复:哥们姐妹们,小弟请教1000的阶乘怎么做?每一位数都的打出来……
数据加载中...
 
   



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

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