jimmy_wID:jimmy_w
11681次访问,排名9480好友10人,关注者13
家穷人丑,一米四九,小学文化,农村户口,薄田一亩,破屋三间,冷锅冷灶,老婆没有,一年四季,药不离口,今日上网,广征女友,革命道路,并肩携手!
jimmy_w的文章
原创 21 篇
翻译 0 篇
转载 17 篇
评论 6 篇
jimmy_w的公告
希望找个好工作,找个好老婆。。。
最近评论
jimmy_w:额,我能想到的就这些了。。。嘿嘿,至今还在玩小尾机器

whyce:学到了,谢谢博主
Zhe:第一个例子不适用于所有Big Endian的机器
第二个本来就很正常……
第三个估计只有x86上能用

caicairoom:南邮的?
hacker47:漏了一种,只钻研技术,不攻击别人的类型。
其实,那才是真正的hacker,以上七种,只是cracker。
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 10000的阶乘收藏

      新一篇: 二维数组螺旋式打印算法 | 旧一篇: 求前n个素数之和

      #include<iostream>
      #define N 10000//设阶乘数为10000
      #define SIZE 40000//预留40000位保存结果
      using namespace std;

      void mul(int *n1,int n2)//两数相乘
      {
          for(int i=0;i!=SIZE;++i)
              n1[i]*=n2;
          for(int i=0;i!=SIZE;++i){
              n1[i+1]+=(n1[i]/10);
              n1[i]%=10;
          }
      }
      int main()
      {
          int *num=new int[SIZE];
          memset(num,0,SIZE);
          num[0]=1;

          //N的阶乘
          for(int i=1;i!=N+1;++i){
              mul(num,i);
          }

          //输出时排除开头的0
          for(int i=SIZE-1;i!=-1;--i){
              if(0!=num[i]){
                  for(int j=i;j!=-1;--j){
                      cout<<num[j];
                  }
                  break;
              }
          }
          delete[] num;
          return 0;
      }

       

        这个实现版本需要预留空间,这就要我先预算一下会有多少位了。运算时间35秒左右,测试机器为P3 733。
       

      发表于 @ 2007年11月12日 20:54:00|评论(loading...)|编辑

      新一篇: 二维数组螺旋式打印算法 | 旧一篇: 求前n个素数之和

      评论:没有评论。

      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © jimmy_w