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>
    . m- z  J. @, a& fusing namespace std;3 E9 ^/ ]; O0 f, B& ~% Z- `
    #define dd 1000000000 ' y8 Z) Y& D9 m$ W% N( `
    #define maxn 360002 {7 P1 U7 g; N: X- A0 E+ F6 t
    __int64 a[maxn];
    ( L7 S9 u4 s, I0 S3 t6 n. eint digit; //位数.
    + w% r! _4 c8 m8 }' _6 D! g; U( vvoid solve(int n)/ V; N+ [( ~$ z1 h" p/ P. C% E
    {# i) N3 K$ {7 K0 M/ `  y( m
       digit=1;* h% ^8 i; A: B; F/ S8 F) C
       int i,j;
    6 z) l+ Q; \5 s   memset(a,0,sizeof(a));
    - c+ F! D0 Q' g4 @8 |3 C. `8 n   a[0]=1;2 C3 Y9 Q2 F% W8 I6 J
       for(i=2;i<=n;i++)
    ; f4 j  k6 y- ^! w" u9 ]7 z9 V/ L8 V   {' K" C) ?* ^7 M1 Q% ?: |
           for(j=0;j<digit;j++)6 q2 S6 B/ v4 o) v& v2 {/ B
           {
    6 m/ Y, J- W; C& g/ e  k% o% F           a[j]*=i;
      m- W1 l" u1 ?7 n! h+ O5 x3 F       }
    8 K7 b9 _8 q( k; M  p6 ?       for(j=0;j<digit;j++)% |; }0 |+ K' U
           {
    / q3 {) U( E( Z           if(a[j]>=dd)( W( i, s& [: ~- x  v# o+ I4 q
               {7 K4 h) c+ i1 O  l
                   if(j==digit-1) digit++;
    6 v. w" Q/ T6 v  e7 `( f) I$ l               a[j+1]+=a[j]/dd;  b, b) l, O9 m  |7 M% e) H: ~
                   a[j]=a[j]%dd;! M4 p- T+ ~3 l/ r
               }3 l$ U8 R/ _! N* ], U( u
                
    % \) R% E0 Q: I$ I9 |7 S       }, S% u0 |2 i+ |
       }
    + D& K' ~" F- t4 ?4 r}, B8 ?# Y" Y: V# N* c
    int main()
    2 M6 N6 h$ _! ]; f- ~: [{
    : S/ \: m7 p5 x1 l4 M9 ]7 P0 j. Q! m    int n,i;
    ) p( y! v6 m  o9 @% d% }/ A  K2 {    ( X8 n% Q1 y9 H
        while(scanf("%d",&n)==1)
    ) w/ a; i1 U* B& O! T    {
    ( Y3 ~5 V6 ]. z7 f( H6 I       solve(n);0 S7 X0 p( B5 v! H2 Z2 p
           printf("%I64d",a[digit-1]);, l5 H5 g: a- K
           for(i=digit-2;i>=0;i--)
    , _5 j$ ]; p5 f6 t" b) n       {. F; e6 P- D" `* M. t
                if(a[i]<10) printf("000000000");//小于10位数补0." n* L4 Y' l% B- ^" k
               else if(a[i]<100) printf("00000000");  a( A& o0 |5 D6 u) Z8 a
               else if(a[i]<1000) printf("0000000");0 l2 L$ p$ ^9 Y
               else if(a[i]<10000) printf("000000");9 l! c  n' J- x/ O! |
               else if(a[i]<100000) printf("00000");. C3 v; _" m. N, H  {2 B, J
               else if(a[i]<1000000) printf("0000");9 G5 x1 \6 t+ B, l; M" D
               else if(a[i]<10000000) printf("000");8 k1 g9 R# |8 I7 ?# m/ H! C& Q
               else if(a[i]<100000000) printf("00");0 c2 [1 v+ a: D' E2 G
               else if(a[i]<1000000000) printf("0");
    ; ]$ V) {- F8 B  X3 d           printf("%I64d",a[i]);
    . H9 c; v  a* x% p  o% i       }
    - t* r/ ~; T% b$ F- E! o" b" G( n       printf("\n");
    8 `" }1 A: D% }4 v& W; x    }
    6 _1 i  V. o! q0 B* h8 {# A, r    return 0;
    ; x. q- _$ P, G. x. k}( k  J  X/ X+ H, z
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h>
    : U0 D( ?1 a& y" L( i: w& A6 ^8 Z$ ^, m. _
    void main()% k4 j& z0 H$ N- W, c# }1 D5 m
    {
    ; ~' Z: p0 ]/ W$ w3 ~* bfloat n;
    $ Z- j5 M3 y  C$ d4 k9 z; N5 `int s;9 K7 S3 |( j7 n- h: D
    printf("input a number named n:");9 Z2 `. r% A, ]$ U
    scanf("%f",&n);
    + F; t1 @6 p  ^s=fun(n);
    5 |  h+ ?+ s8 N* D2 f3 a/ eprintf("the result is:\n%d!=%d",n,s);* q' x3 z( ]/ x- X# L4 Q9 j& f
    }
    1 ^! Z- M, `% U2 h$ y& ]! V' K2 O5 t
    void fun(n)* C5 ^. C/ y" i  u4 f
    {/ \3 k! z" O( b
      int i,f=0;. B1 ^9 O7 Y8 w. x% D' l+ I8 U9 X
    if(n<=0||!judge(n)) {return ERROR;
    ! F! R, R7 t% F' d# J9 P$ Z; v exit ;}6 K6 T, j- w& c% P3 h  n( `
      while(n==1)$ e: m$ Y6 D" G( O3 D! O
         f=1;8 T7 ~7 r) ?( Q/ |3 x7 \
         f=n*fun(n-1);$ r$ {- Q$ H# s) N1 `) N' q
    return f;
      _- x/ y: W0 b& m5 @% _" h% |+ i) t}" e# X5 T4 b5 ]  r5 t  m

    6 n9 G- Y' }8 L* B3 Q% R: ]void judge(n)//判断一个数是否为整数
    5 a: j- z. n+ O{
    5 T8 D" z' X6 Z$ b' a9 C% wwhile(n>0)
      y) ^  {) W* c: b5 qn=n-1;  P& ~( C+ _% k" H, {* |6 d/ S
    if (n==0) return 1;+ }3 U8 p% B% i, `! {' }" T
    else return 0;
    . z' Y3 v9 N3 @* W4 \, T}8 R# d$ m. B. P2 _& V: E
    5 j& q. X7 }& G" B
    回复

    使用道具 举报

    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 ^' d/ N: h1 B8 |#include<string.h>  z" p$ j( I2 D
    const  int maxn = 3000;  O* T! Y2 K( n  f+ @4 s
    int f[maxn];
    , L& }; G% g- ~8 {; L4 Rint main() {7 [" u) o; ~, A: w# U# E/ A
    int i , j , n;
    , t5 Q: n: b9 p* f( C scanf("%d",&n);
      m2 a0 A- L* Q: R' C5 @" t0 T( c# N memset(f , 0 ,sizeof(f));) Y; H/ K& D/ O
    f[0]=1;
    & W+ H5 _# e5 s' v+ b  K1 T8 u for(i=2 ; i<=n ; i++)
    0 x; K) h  [9 _* ^2 p: z) w8 Z {
    3 `; J$ z( m( l3 q  e  int c=0;
    0 w" Z# V+ H8 ]1 g" f- F  for( j=0 ; j<maxn ; j++) 2 A& L, Y8 I* P4 m; Q# w5 _
      {; l5 r3 h2 Z0 _" K" c
       int s=f[j]*i+c;
    8 L# ~$ A: A, P: O7 `   f[j]=s%10;
    6 q; m8 A& E( p6 p  w3 o: B! Y   c=s/10;
    / Y/ l2 t: \- q  U; X+ n   }: n! q7 v( l, W- h
            }
    + H* v& `% [  q        for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;/ G  z# x/ e: {
            for(i = j ; i>=0;i--) printf("%d",f[i]);
    ! ]* e6 ?) G0 W6 p8 W4 l/ T8 Q        printf("\n");
    , u- y0 ^- A# `: g4 }' I+ s, V6 J1 W/ c) `        return 0;* C# x9 B/ f! b6 A+ R; v
            }9 A+ J; H' _8 q) r+ R
      
    回复

    使用道具 举报

    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-6-3 11:23 , Processed in 0.373252 second(s), 100 queries .

    回顶部