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>
    % _) p$ r* W( u/ [) `& @using namespace std;' p0 H' T/ _* t4 c
    #define dd 1000000000
    2 H6 _, h/ a6 M( g) M: H/ H#define maxn 36000
    4 \, i/ W9 L# T* l' W1 ?" V__int64 a[maxn];
    $ t" J/ M, t8 o) gint digit; //位数.! s, r+ M& A8 D  E
    void solve(int n)* ^1 ~2 ^0 d( A6 n2 W/ p5 x
    {! e, h8 ]- ]7 B2 S) _
       digit=1;
    - L! n- D+ i+ h- f* C9 K& o) k7 o6 s   int i,j;
    ' ~; W0 _- b$ b8 A, Y   memset(a,0,sizeof(a));+ K0 y) Q# p& x/ @+ `5 n2 J" |' f
       a[0]=1;
    - Y' F! p! q! R   for(i=2;i<=n;i++)0 @& `2 P  v* c
       {
    4 C: ~5 Q* N5 x, r       for(j=0;j<digit;j++)
    + x0 [* v6 a7 k* @7 B       {
    $ x9 }3 q5 o0 P  `& z; q! a           a[j]*=i;6 b5 P; H( k; j
           }% J. E' w6 M5 v4 Y2 N
           for(j=0;j<digit;j++)
    5 a+ h" ]" v+ \5 A, w7 o       {! }* v1 X5 f7 m! ~
               if(a[j]>=dd)3 f5 ]  y% \6 ?) A2 `. r5 R
               {
    9 L- T, z/ v4 d: I               if(j==digit-1) digit++;2 B/ ?8 r; O. S# \! V
                   a[j+1]+=a[j]/dd;. d& W, |. ^% S4 _" i8 M5 C
                   a[j]=a[j]%dd;
    8 C, r( p9 B' y' h# J9 v+ X# n           }
    # a* v/ {2 o+ B6 a            : l/ _2 Q4 _& l* H# |% i, j- V
           }3 ?0 N( |6 }% T6 \: b1 z
       }" c* p( r$ ^7 |
    }- {! b! s; Y7 \) Y! P: Q
    int main()9 I4 K  x8 u* ^! X, ]: S8 w
    {3 H& p2 R9 R8 h' L2 P
        int n,i;
    - D7 m1 S$ g- B$ E8 b( s; d" E    $ J' ?& ?3 @: ?5 M" P8 F
        while(scanf("%d",&n)==1)
    ' E! K  {4 P& ]2 I1 B5 Q# g" r1 Y/ P    {
    . k. B: ^* u4 I# p, F% p; q       solve(n);( h! n, z7 a, @& f
           printf("%I64d",a[digit-1]);3 }" U( h! A3 x: Y5 ]
           for(i=digit-2;i>=0;i--)- Z3 v7 f& e& \: v2 C( Z$ H
           {
    7 C& g4 o/ h- G2 ~6 U            if(a[i]<10) printf("000000000");//小于10位数补0.+ K: R$ O; v) G3 G
               else if(a[i]<100) printf("00000000");
    ' {3 G$ e; b+ {           else if(a[i]<1000) printf("0000000");& c* |  m, A( b& z- ?; {- _. n
               else if(a[i]<10000) printf("000000");- {* |, m5 {* F  s+ `9 {) D
               else if(a[i]<100000) printf("00000");
    ) z+ a$ H+ E2 n           else if(a[i]<1000000) printf("0000");
    . p% l) R3 ]4 l" G: H           else if(a[i]<10000000) printf("000");0 w2 h  |) v# }7 ], D; @( c5 D
               else if(a[i]<100000000) printf("00");
    ! O% `# c. C! c7 M           else if(a[i]<1000000000) printf("0");
      Q! V9 j( K. p: a; l- u           printf("%I64d",a[i]);
    " {1 W+ g% t1 d; ?2 N       }4 X/ B* k& h# N, V$ H; I+ N7 L
           printf("\n");
    9 L8 \, X) n# }! q; g6 r    }
    4 |2 A! g% ^8 }- }    return 0;9 f9 e" f' W- g
    }& u; O9 y: K1 ~4 ^' q. G8 t: w
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h> $ t9 z8 T/ O6 z
    - X0 ?. v9 W# z; k0 `* h1 \
    void main()
    , a3 o" S! t- H8 P, C7 V{
    9 W* E" a* @/ w0 e+ H8 r2 \float n;7 l: \  F& }, s) d- }$ R. E
    int s;
    ' a# u, Q! G: t- m$ Xprintf("input a number named n:");, S2 d4 b# D& j! A# R
    scanf("%f",&n);
    9 T4 }* ]6 f/ i: E5 y8 Fs=fun(n);: J+ Q( ?  j; p  x% |
    printf("the result is:\n%d!=%d",n,s);
      b  _; g2 y# ]2 q}; W0 v2 `" P: ]) f6 A: ?1 U

    ' @9 q" g5 n! s8 x) r: Uvoid fun(n)2 ^2 ^% T: t- M0 ]# l+ D( v  ]' H8 h
    {
    5 ?* O. A% U8 ^( q  int i,f=0;- N: ]. r! O- Y9 G3 ^
    if(n<=0||!judge(n)) {return ERROR;
    ! A! d/ _' M. J+ M exit ;}5 h& \$ n, A& o+ r7 k# K
      while(n==1): M6 V7 U: R/ Q% b
         f=1;
    / [: i# h- ?. |& k8 O7 l8 Z     f=n*fun(n-1);
    * |9 ~/ D4 J; y/ Mreturn f;7 X% ^" a: ?- w/ p3 M3 r
    }
    ) _0 R* n8 }0 r5 S1 e" s3 t% a, B* n  D# e( v
    void judge(n)//判断一个数是否为整数
    % U6 Z# M0 F- H% U( a- `3 N3 l{
    2 F. L; Q9 W: [while(n>0)4 v* Z! V! e; u, ~- l. A  N
    n=n-1;
    - Z) `8 J% r7 X: m- Y5 V# H3 Rif (n==0) return 1;
    4 J% c& ^3 B& ^% {1 Oelse return 0;: |/ N6 Z0 v2 S( e  h
    }
    $ i0 f* A, x. c, ~( g; x" Z' f
    4 D# d; q9 ~, r1 v1 W( {
    回复

    使用道具 举报

    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>6 M1 X, i0 o! v  u) G, H9 Z
    #include<string.h>
    - r+ a+ b- w8 B, j/ {7 s( V4 Cconst  int maxn = 3000;% p; D' |8 n5 u+ p6 K
    int f[maxn];
    # p/ ~& w1 u/ e7 Iint main() {
    " C6 {  l/ q; C6 _7 { int i , j , n;) ]" D* M6 R* t" _9 q0 o
    scanf("%d",&n);4 H) m( w* d- ~! p6 R) g' L
    memset(f , 0 ,sizeof(f));
    % `* Y8 Q% l( N( t1 L+ q0 X f[0]=1;! o0 A$ Z' p! t" A& F
    for(i=2 ; i<=n ; i++)
    3 n3 ^& V2 \7 d9 [- t {
    ! x4 P% O* ?' T" \( h3 T( }/ d; Z6 a: d  int c=0;; I9 b" X# z$ m' [( {9 ?% l" C/ G
      for( j=0 ; j<maxn ; j++) / h% n. C* i0 n& V' k
      {2 \; Z  h. Q- f
       int s=f[j]*i+c;8 N8 j  p# C& c2 x  v
       f[j]=s%10;; k4 S" P- h- e! }* B  d9 I4 C! N
       c=s/10;
    2 C! G% z$ s8 C+ \' _$ ?3 u* Y   }0 V$ d" x/ Z9 z  ?+ R/ v
            }% ~* G6 B. G0 f: u
            for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;
    - Z; f4 B. w3 F3 H5 i' ]        for(i = j ; i>=0;i--) printf("%d",f[i]);6 M" Q2 f- c( Z+ z1 n
            printf("\n");
    8 {7 @- G6 S7 }6 D        return 0;
    7 D) U8 c' b" H! _* w) e        }
    2 s3 y" A9 }# l+ x  
    回复

    使用道具 举报

    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-10-11 19:54 , Processed in 0.810668 second(s), 99 queries .

    回顶部