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>
    2 ?3 j8 Y% w: \7 r; kusing namespace std;) J2 }8 C& X) D( I& F* @
    #define dd 1000000000 # ]5 I+ r' \" ^6 t- \: ]1 g2 ~( N
    #define maxn 36000  i. H& W1 B% S9 W" j4 ?$ j2 N
    __int64 a[maxn];8 S0 l' W8 H) G" K% f5 [+ j/ [
    int digit; //位数.
    6 K3 U2 P, t# }  G, h; Avoid solve(int n)9 H& A: s5 w/ z$ K
    {& [: ?  u8 z# c5 _
       digit=1;
    % T5 ^4 `' s0 f7 M   int i,j;! ~! ~9 V& _/ c+ ~' z% y; U: ~
       memset(a,0,sizeof(a));
    3 h, U. o& `1 G* w* R$ @+ t4 {   a[0]=1;
    ) L$ s% v+ [$ C7 {0 U: N   for(i=2;i<=n;i++)
    - E2 B: g( d5 H# F5 o* \2 R   {
    % t% E) k. J+ |1 K       for(j=0;j<digit;j++)
    . e2 `5 V( ~, d0 a       {+ F& n7 R/ w, P9 O7 V& q' k
               a[j]*=i;
    % C, k/ c  p" X7 I- h6 V       }
    - z9 @2 F5 \8 q  _9 t  W" M       for(j=0;j<digit;j++)/ w% ~# l" n' ?" s0 y! ]2 w
           {; M7 V8 }+ z1 Q5 [( g! @! s4 A
               if(a[j]>=dd)
    6 k/ g5 h3 R& L           {
    1 ~7 ^- ^# P7 C0 ~               if(j==digit-1) digit++;1 _1 ~1 z( U+ w: _3 E: Z- G
                   a[j+1]+=a[j]/dd;# ~9 q9 l. X8 x
                   a[j]=a[j]%dd;7 x0 u% s' ^7 k' ~% N
               }
    " g* b2 O( p! b- M+ \4 M3 a2 C* p% w            
    7 U+ q' ]* p. L5 o1 b       }! d5 d' m  B) Z5 Z+ T% W' T
       }
    0 W  R! F; A/ m- H- i5 w- m}3 b4 w# ]. J. A" U
    int main()% r% y3 K0 j; V% l( b
    {
    / G  B% D$ q* K( D    int n,i;: r. }, L. C  E5 R/ p% {3 q, ~( d& C5 _
       
    / S0 ?! a  W+ P    while(scanf("%d",&n)==1)( r+ [7 U5 v9 u: D  b3 _4 H
        {4 d' ^% z6 N  Q5 t! X8 q/ v% |
           solve(n);5 z& X/ g4 }$ {+ Q& T4 q
           printf("%I64d",a[digit-1]);. V( t9 S+ l- u" W% }6 o
           for(i=digit-2;i>=0;i--), c) k- R5 U3 {0 p
           {
    ; o, p+ }7 f$ q! y6 [            if(a[i]<10) printf("000000000");//小于10位数补0.
    " G! j% _5 s- a1 k2 i3 o! a           else if(a[i]<100) printf("00000000");  s2 D) x( W1 R( f! X
               else if(a[i]<1000) printf("0000000");
    ' s7 @; [8 o2 w           else if(a[i]<10000) printf("000000");& O# X: S3 [* Z6 Y4 j
               else if(a[i]<100000) printf("00000");
    3 z! L4 H8 Z5 P! G' F           else if(a[i]<1000000) printf("0000");
    ( I% z) F8 ]; A& Z& k; u# {3 S           else if(a[i]<10000000) printf("000");$ R+ c* S: }$ y( S  G, G0 B
               else if(a[i]<100000000) printf("00");
    " {$ g+ d9 M: e% c8 r           else if(a[i]<1000000000) printf("0");
    + |! @) Q. i2 m) V* c) U' T: [' U           printf("%I64d",a[i]);( A7 H$ ~) u* _, H* P. `$ v
           }
    4 V& y$ y$ x! `       printf("\n");" x. G! S0 Z1 F0 s( C
        }7 _. d3 S/ ^, }  x% N
        return 0;
    - K- H) _$ h- a7 [- {& B}
    0 h' W4 \3 Q, ~" }4 ^2 |
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h> 3 h' B. Q  x3 B; i& t
    4 z  e+ g7 e) R
    void main()
    $ m1 O" W& E6 Y8 Z9 P' u{/ R. X4 [3 G0 C5 N6 ?
    float n;
    / P) B$ {( t, v& g* P* A6 ]" {int s;) j! N6 u& Q' h, `2 J) }4 F
    printf("input a number named n:");; Y& c' w, K9 t6 }2 t1 d/ r6 v) A
    scanf("%f",&n);
    , {/ \7 a" I& g1 p* ds=fun(n);
    7 ?. M, ^+ ~. kprintf("the result is:\n%d!=%d",n,s);
    8 F' Q& W4 y+ C( k1 ]8 G}* ?3 k) i: @) q9 o3 m  |% R

    ! n+ \: U9 e( j) @void fun(n)2 m1 N: y" e, O! T5 c' Z
    {
    7 E& Y! {1 R. f* r. L9 n  int i,f=0;
    9 `; C& v! U0 O+ Y: S0 q. h5 ?if(n<=0||!judge(n)) {return ERROR;3 d( W1 h9 s% f1 r5 r4 }# V& j
    exit ;}
      s7 w% H; F( o+ L$ c5 T: E  while(n==1)
    & ~. U  d3 {) X) @     f=1;  x4 ]+ y) Y+ U4 o/ F$ z. H
         f=n*fun(n-1);
    , M$ R. _5 I& M5 C" wreturn f;
    / u  \' x1 a# a. B4 b}
    6 S0 j) p& r. B$ I1 D" m& S/ Z- m" f# E
    void judge(n)//判断一个数是否为整数
    , i6 B2 G: ]# e: z( e2 D{
    . ~9 }8 C9 O: `+ |# k# W/ Cwhile(n>0)
    $ Y' t- p- Y4 P& |1 m; |" U1 jn=n-1;7 @: a; u- [; m" r2 x# Q
    if (n==0) return 1;3 m* |; r; p" Y4 S% W' @
    else return 0;
    1 ]. p; D9 {, _& Z* z5 N}
    9 E# Q, S, b" I8 k$ \4 T1 ~2 M7 ^* A; I
    回复

    使用道具 举报

    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>5 H- f8 G9 Y! z
    #include<string.h>
    ! n# P  g6 H8 ~6 u) v: ]/ u/ W1 Bconst  int maxn = 3000;7 o. y0 T  [6 J( A5 T6 ^2 q
    int f[maxn];
    ( x1 n) ?& L( kint main() {
    - ~% y1 Z2 A& _8 Q* y/ I, w% ] int i , j , n;
    0 y# d- H2 y  u: E1 J" r scanf("%d",&n);
    : ~* N9 |  U/ F8 ]/ U" y memset(f , 0 ,sizeof(f));
    ( q0 v- J9 K% Q0 Z f[0]=1;
    7 g7 |- k) J. q* j for(i=2 ; i<=n ; i++)
    ! a. ^9 D5 Z. w/ X/ m: F: f { # t7 y% R( b) M; c8 l
      int c=0;/ @: L' P  {% p; R  Y
      for( j=0 ; j<maxn ; j++)
    % \% H1 E, z- ?7 p% u3 ~6 V, o  {
    8 g- r  [: ^) {   int s=f[j]*i+c;6 Q) a  _5 e' V5 I
       f[j]=s%10;
    ( `$ \* u+ C" U$ v& O# M   c=s/10;
    $ h0 t) o2 o# d3 p+ T% s: ~   }0 C( v" l8 W9 F# u7 ^' T
            }, O" a/ ]- W3 d
            for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;
    / W5 T6 _0 k. _  n/ B1 q        for(i = j ; i>=0;i--) printf("%d",f[i]);
    ( i4 p0 F4 e: N        printf("\n");, I7 I. @# T. q. m
            return 0;7 G9 m  W: c* k, n: ]6 V
            }
    " Y6 C/ l* K" w' a& S) ~  
    回复

    使用道具 举报

    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, 2026-7-20 14:27 , Processed in 1.308569 second(s), 99 queries .

    回顶部