QQ登录

只需要一步,快速开始

 注册地址  找回密码
楼主: 1084595218
打印 上一主题 下一主题

求n!的算法!!

[复制链接]
字体大小: 正常 放大
6601750        

19

主题

4

听众

783

积分

Belief

升级  45.75%

  • TA的每日心情
    开心
    2011-11-18 21:21
  • 签到天数: 2 天

    [LV.1]初来乍到

    新人进步奖

    11#
    发表于 2010-9-30 00:18 |只看该作者
    |招呼Ta 关注Ta
    #include<iostream>6 `3 P. e$ ?/ j3 Q) M8 s8 H! s
    using namespace std;+ f' f, W% s2 _: `+ e' _6 X, o
    #define dd 1000000000 0 D. x2 t6 S0 r1 {9 Y
    #define maxn 36000% {  L0 L) I# u' L
    __int64 a[maxn];
    - v# J6 I0 q1 w3 }/ k2 G- @5 vint digit; //位数.% T' f( T, ~4 A: n; |
    void solve(int n)
    ' {. j( N! I" j! n8 I{6 x3 h/ k3 ~( K' O+ J
       digit=1;) x4 C  M: P. X8 E1 J$ a* f
       int i,j;
    ) d0 A8 Y7 g0 \/ b" Z   memset(a,0,sizeof(a));
    * ~- i' ~% b  V: f9 w; X   a[0]=1;( P5 i0 s" I8 b7 c8 D
       for(i=2;i<=n;i++)
    ; K5 O6 W. h" R; x/ N" C0 J( c! C   {+ ]; Q# y# e1 O8 H/ a- L2 s& z, }
           for(j=0;j<digit;j++)9 f# F6 V5 F% J: |7 y6 L  y  g+ y
           {1 R5 f3 k8 \  ?9 ]- u3 E
               a[j]*=i;- f" P- Y. n6 Z: H. D3 q( r
           }) Q8 m. v9 Z7 m8 u
           for(j=0;j<digit;j++)
    * S- {/ l) b; G2 D) `3 S; |       {
    # L! @# k) `6 ?; ^( p: P           if(a[j]>=dd)
    1 }" ~& a" L7 x: n: I* ?4 j           {% u! B. b/ @* U2 }9 C3 V2 A2 ]
                   if(j==digit-1) digit++;- `+ h' f# q1 J" h( Y* \# w$ V
                   a[j+1]+=a[j]/dd;
    * e/ f8 m+ O. B4 ?' z% o% J               a[j]=a[j]%dd;+ r$ y9 _0 |5 x8 K
               }) }# V/ f- |0 L1 S5 s
                ; V3 W* ?* V0 l4 Q7 b9 U
           }
    1 _. x/ @! O9 ^   }
    % c$ y+ Z" `' V( B  Z}8 m% D8 e2 }: I; \- L5 v# w0 ?
    int main()6 @8 k9 j& J( f' |5 r2 K9 c
    {: Y5 v, {& w& h. @7 P% v; ?
        int n,i;
    ( O. }$ E1 `& t% B/ B2 e      U! l0 y$ n% J& q+ \' g
        while(scanf("%d",&n)==1)
    $ T- x. i2 x0 m: _4 f: g    {2 a  K9 M3 v$ M, o9 u# H# @' t1 }
           solve(n);0 X9 w, F! h# ~& h; {& S
           printf("%I64d",a[digit-1]);# f% \0 d6 g6 S1 y: }3 o  }
           for(i=digit-2;i>=0;i--)
    6 @) ]3 D6 c1 o% @% D       {
    ( t6 i) a; E) V" T, l            if(a[i]<10) printf("000000000");//小于10位数补0.
    ' m2 S# p2 W( N. }7 o3 w           else if(a[i]<100) printf("00000000");
    + r+ a- h+ Z% K7 X8 H2 v. c6 i           else if(a[i]<1000) printf("0000000");, `0 ^5 E- u' u$ M
               else if(a[i]<10000) printf("000000");) p9 W9 U, B2 [( P- F1 \2 @: q1 X; v
               else if(a[i]<100000) printf("00000");
    . Z  I( R- X5 f, n9 @$ h/ E( R" q9 t           else if(a[i]<1000000) printf("0000");* {9 v' a( y& P
               else if(a[i]<10000000) printf("000");
    " S+ X! m8 _3 z2 d* [4 L: H           else if(a[i]<100000000) printf("00");6 Y4 h7 ~3 t. J3 I. E
               else if(a[i]<1000000000) printf("0");
    # x) L8 f% ?0 i8 w           printf("%I64d",a[i]);) D, G: s5 f. B- ^, X
           }
    - a8 }0 `4 B- d; o7 u       printf("\n");1 G) b' ^/ l& K3 e3 t9 Y6 A
        }( y5 y( ?" `3 h: B8 z& B
        return 0;
    . B. T0 ^1 _' e7 v}7 u* X# A+ m- c  G0 E/ h6 ~+ f& `
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

  • TA的每日心情
    开心
    2013-3-24 11:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h> ; k- Z/ u+ D+ g$ F* r

    * _* Z* o3 [6 P  ~. `+ s/ Lvoid main()$ Q% O5 w1 p2 e9 O. ^" |$ G8 m
    {6 t- X: o; O5 V, n3 c
    float n;
    6 k0 _+ ~3 H  X" D( }3 Gint s;3 V+ }- _3 {' \7 n
    printf("input a number named n:");
    2 N6 `# _$ [6 V/ m$ wscanf("%f",&n);
    " k3 \$ `: ]7 _6 ]) q1 t* {s=fun(n);. G: k) S9 N4 R/ M7 w6 z
    printf("the result is:\n%d!=%d",n,s);) ^6 o# J: u% o. ^" G! y6 l
    }/ E8 e) P- C1 e9 s
    & W9 L5 t& R) U, ^6 X8 V( x0 s
    void fun(n)
    + A  z) |: I$ @{
    ! A& q6 i  e4 E4 m  int i,f=0;8 M6 a4 h: z- H; U8 R, ?9 t1 v
    if(n<=0||!judge(n)) {return ERROR;
    2 g6 D, K" l: o exit ;}9 g* C+ @& j$ l2 D- A5 m
      while(n==1)
    : ~8 ^; H: h: D0 p$ j$ L' r     f=1;
    ' f5 G1 [. z. M; p  T     f=n*fun(n-1);
    3 o; P( K6 c8 [  Hreturn f;
    0 i3 u* @/ ]5 i6 U}; _& O/ I) Y5 B; ^9 `
    # W$ W0 s; f6 S& X( ]* m  A0 z
    void judge(n)//判断一个数是否为整数
    3 u* m9 H/ X7 X! k2 V{& A, x$ I. W" T. ^3 X) w
    while(n>0): ^" e7 {( H) n6 L* Q4 x+ C
    n=n-1;
    ! j' g$ K3 q, fif (n==0) return 1;' v4 n) o  a4 t- N
    else return 0;+ b  o1 F) y: [1 h
    }
    9 f7 q+ G& \3 c; O& J4 @* X4 [% }0 z8 l; a, ]4 R4 d( a; @6 f
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

  • TA的每日心情
    开心
    2013-3-24 11:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

  • TA的每日心情
    开心
    2013-3-24 11:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    新人进步奖

    回复

    使用道具 举报

    2

    主题

    3

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    难过
    2013-4-6 23:16
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    自我介绍
    一励志与考上北航的学生

    群组Matlab讨论组

    群组数学建摸协会

    群组西安交大数学建模

    群组北京科技大学数模联盟

    群组吉林大学建模讨论组

    #include<stdio.h>- s& c/ j' B6 }' Y  m  A4 u
    #include<string.h>
    / j/ Z" g2 |' |! `. X5 M/ Lconst  int maxn = 3000;
    # ~6 u& G8 W0 U9 [2 Dint f[maxn];2 @" D9 e0 ~! ]! I% L
    int main() {$ z( x+ a% h/ h+ n2 H, w) V
    int i , j , n;
    % V" Y2 S- v  D2 S# X scanf("%d",&n);
    ( d- |. I& J& r, X* n! a# Y' Y! f5 b memset(f , 0 ,sizeof(f));
    1 K: T8 \8 x# s8 k2 } f[0]=1;
    % o% m% N" y" n* V. q for(i=2 ; i<=n ; i++)
    * Q4 F$ y8 z0 s; h { . t9 S# h2 `( ]7 k
      int c=0;
    , b  U3 ~* i' y5 I2 V3 f  `  for( j=0 ; j<maxn ; j++)
    ( U7 b! n, r* c  S1 E$ A. u. M  {
    ! X9 h. H4 u/ _0 W   int s=f[j]*i+c;
    : X( w3 O; c2 S+ X# G7 R   f[j]=s%10;0 A6 p: \% S! x: c, w: W
       c=s/10;
    " w3 b. T# m8 J% N9 O/ N9 a   }
    : x8 S+ K5 c' M; [' [/ C6 l        }- Z) e) O, g) M! S. v/ K* Z
            for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;
    $ ?3 y4 \- `' t" ]        for(i = j ; i>=0;i--) printf("%d",f[i]);
    , D9 y8 {% s3 [+ _- c        printf("\n");  ~5 a! E1 p) P$ ~% l0 g3 _3 i
            return 0;
    & r6 d' E  @$ b) A6 ]2 A* m        }! l* }, v6 y1 j3 L
      
    回复

    使用道具 举报

    2

    主题

    3

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    难过
    2013-4-6 23:16
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    自我介绍
    一励志与考上北航的学生

    群组Matlab讨论组

    群组数学建摸协会

    群组西安交大数学建模

    群组北京科技大学数模联盟

    群组吉林大学建模讨论组

    回复

    使用道具 举报

    2

    主题

    3

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    难过
    2013-4-6 23:16
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    自我介绍
    一励志与考上北航的学生

    群组Matlab讨论组

    群组数学建摸协会

    群组西安交大数学建模

    群组北京科技大学数模联盟

    群组吉林大学建模讨论组

    402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
    回复

    使用道具 举报

    2

    主题

    3

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    难过
    2013-4-6 23:16
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    自我介绍
    一励志与考上北航的学生

    群组Matlab讨论组

    群组数学建摸协会

    群组西安交大数学建模

    群组北京科技大学数模联盟

    群组吉林大学建模讨论组

    回复

    使用道具 举报

    2

    主题

    3

    听众

    155

    积分

    升级  27.5%

  • TA的每日心情
    难过
    2013-4-6 23:16
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    自我介绍
    一励志与考上北航的学生

    群组Matlab讨论组

    群组数学建摸协会

    群组西安交大数学建模

    群组北京科技大学数模联盟

    群组吉林大学建模讨论组

    回复

    使用道具 举报

    李子 实名认证       

    9

    主题

    3

    听众

    1321

    积分

    我是水果!!!!!!

    升级  32.1%

  • TA的每日心情
    开心
    2014-2-19 15:43
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    自我介绍
    我出生于上个世纪,就我看来这个世纪的社会是。。。。不告诉你

    群组Matlab讨论组

    群组小草的客厅

    群组数学建模

    群组LINGO

    群组武汉大学

    汗!!可以在开头再加一个判断语句,如果数是1000,就算999!,先输出999!的值,再输出3个0,如果数小于等于999,就按照上面的算
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-16 10:03 , Processed in 1.020828 second(s), 99 queries .

    回顶部