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>$ I/ P( X' S" Y1 c6 R8 u
    using namespace std;
    * y) j8 S- O8 W3 G" t8 G* w#define dd 1000000000
    ) \! G- i( f% Y- U' H#define maxn 36000
    + G# H+ v  Z' |8 ^  R__int64 a[maxn];. s; h0 w4 a) ^6 T$ v
    int digit; //位数.
    + s" A3 b0 e2 j( r" {3 }! J0 u, b; fvoid solve(int n)4 ^7 H# ^9 x- {/ s9 ~$ j
    {
    & h* D; c0 U" i3 \" U   digit=1;
    4 {2 V  r+ g8 G9 k0 j' t   int i,j;
    ' j5 C6 T( K1 S( s4 n8 t# o   memset(a,0,sizeof(a));3 d: `0 V+ T! l' n$ J# R5 w# c
       a[0]=1;
    ( t5 E( P6 {% f: ?! n   for(i=2;i<=n;i++)
    - Z4 Q% _8 L. ]3 |+ B4 _1 k   {1 E+ V6 M1 R/ ?: [5 A  m/ o
           for(j=0;j<digit;j++)" m% P/ L+ b( u% S* D4 u
           {
    9 d8 t/ T( n5 Q4 v' N' s4 w+ S           a[j]*=i;
    $ R0 b, y: c* j       }
    . s1 Q5 M. S+ \7 T2 H, [+ V       for(j=0;j<digit;j++)5 z) h! ]1 y' j2 W
           {% |1 A! y4 n5 L) V8 G- @
               if(a[j]>=dd). s6 \2 g# _  M0 L& Q
               {
    6 q7 u1 @& C- i8 h- I2 H               if(j==digit-1) digit++;
    # y0 `4 e" l( `" i: W               a[j+1]+=a[j]/dd;
    ; V6 V6 q* O5 F, ~               a[j]=a[j]%dd;5 v+ S# W: s; p. N
               }& N6 H  _! S" z9 h% X
                
    0 F) @, ^8 x" c. c( A9 M& ?# Y       }: D9 ?: z! {$ b$ r7 W7 j
       }) \! u1 k$ ?3 x. O
    }/ L- @0 D2 b/ o4 `/ V! O, W2 f
    int main(); ~+ J$ R" p5 P1 z2 Q
    {, d0 K. j3 T3 P0 \
        int n,i;
      f0 ?8 @; {; ]    " w# d. h/ r) v4 p7 `* ~4 Q
        while(scanf("%d",&n)==1)
    3 Y1 P# M4 Y* m4 }# K9 N* ~    {, r" a6 g, |' p$ ]# q3 ?8 V2 t
           solve(n);) d4 j: w& ~# t) G" H& I: R% d
           printf("%I64d",a[digit-1]);
    2 T" W  W* t/ @: s, ^) _       for(i=digit-2;i>=0;i--)
    . e4 w9 x8 f; e$ g- x       {+ K. C1 L' A4 m) r; N+ Y. N
                if(a[i]<10) printf("000000000");//小于10位数补0.+ F3 i4 F" \! {, ?
               else if(a[i]<100) printf("00000000");2 B% _3 }  D4 U
               else if(a[i]<1000) printf("0000000");
    3 V0 ~7 N5 @& C- M+ L           else if(a[i]<10000) printf("000000");& G+ q: ~! @) c# T, f
               else if(a[i]<100000) printf("00000");. ?; F$ t2 {: k3 ?2 k" l
               else if(a[i]<1000000) printf("0000");: m1 X- W! G& M& Y. Z5 }0 s; A+ c
               else if(a[i]<10000000) printf("000");0 ]( _) ~- l# j3 s& [& `* d
               else if(a[i]<100000000) printf("00");! g" _$ W/ }- w$ _4 Z1 \0 p% a
               else if(a[i]<1000000000) printf("0");. M2 x7 \' [1 K7 ^& B
               printf("%I64d",a[i]);: N1 B8 f" o2 H- q
           }
    ! |& \) m# p, z! t3 W4 {5 v; J       printf("\n");
    ( \: ?0 o% z+ [( u5 V* [    }
    $ O4 X2 m$ o. W- F    return 0;' I; m$ ~- `) {- ]
    }
    ! H" o3 u( b$ E3 I9 l
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h> 6 t# m# ?# i; ?) Y

    / s5 J5 ]2 G' J( a" ^9 wvoid main()
      H! [6 ]- X9 \; ]{
      s+ f) j- H1 Cfloat n;0 p, N, Z2 B6 F% a8 P2 u* {
    int s;9 q9 F( t. r7 Y  t1 w
    printf("input a number named n:");
      z7 P% \+ z: G7 c3 Lscanf("%f",&n);
    # W, N% c: F% M* [s=fun(n);( {: M+ q  h$ \( o5 W& h5 s
    printf("the result is:\n%d!=%d",n,s);
    $ ^3 `/ K1 ]  N9 E+ c+ _! u, P}  t( X3 T+ w2 e3 J# n: K& f
    ( O# W% r" |  x2 H9 e2 x& t
    void fun(n)
    3 N: i: q; n+ [{
    5 K1 X  _' N4 o  int i,f=0;
    8 y! d/ N" _8 E) _1 h$ Qif(n<=0||!judge(n)) {return ERROR;# o1 K; h% E5 {8 Q8 [, s# y- k
    exit ;}
    ' e$ E! P8 o/ _  while(n==1)4 d- q/ N; `9 T3 V7 I8 _
         f=1;
    1 A' X" W3 B9 ~- b5 t- T2 @     f=n*fun(n-1);+ K8 a; {6 A: A- s
    return f;' `3 Z4 |+ c0 S
    }+ ^' [7 q" `. ?( J9 X' {( n5 U

    ) Q1 i) M5 N5 M) V5 U$ K2 |* I. tvoid judge(n)//判断一个数是否为整数' Q# q5 s6 I$ G2 s" w8 g+ q! f: o
    {! k( d4 Z& ?  f( s
    while(n>0)
    # m4 b8 d9 H; j7 q- @8 jn=n-1;. Z+ n7 t- p- \, |# M' O
    if (n==0) return 1;
    4 \; C6 N6 a, A, b, m7 x. b+ _) Aelse return 0;6 Y- m& [0 S, O
    }
    ; y1 {0 C0 Z3 Y4 y: ^9 B' t
    5 Y' G9 P! d5 ^/ D" {  G5 A6 }
    回复

    使用道具 举报

    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>% x1 S% {: a- u* H; e5 v
    #include<string.h>
    & m. H, W; L2 o- Aconst  int maxn = 3000;5 B) J3 i) ^! b" U# k% v
    int f[maxn];
    5 }  _2 P/ l+ h: `/ Z. O6 i* V: ?' nint main() {
    ) L6 x0 T, I& E- N0 q. q; X( v4 d0 T int i , j , n;
    . k4 K, H# f7 U8 U. k1 X7 _$ M scanf("%d",&n);' a9 R+ u- B" Y: i. M. y0 m- S
    memset(f , 0 ,sizeof(f));
    8 x3 z8 p) B. W) N8 P" Z f[0]=1;/ P5 O- S: C* \5 a* e
    for(i=2 ; i<=n ; i++)
    + K/ ~: ~' P5 T {
      ]- G9 v. {# v- m9 y8 E0 ]  w  int c=0;
    ; s: l5 d0 C5 P- f  for( j=0 ; j<maxn ; j++)
    ; A9 c4 q, P; `+ u6 u* ?3 E  {
    $ C$ W& N* x/ F9 K   int s=f[j]*i+c;$ M) ~5 H- a( G: G
       f[j]=s%10;
    7 n, U0 W7 X6 W4 p" {. _   c=s/10;
    , U; B' }+ D" ~- O1 K! n   }
    ) o$ C* A+ n, Q2 K/ D) `. V        }
    * S9 {( i! k+ X% T        for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;
    + M( @4 s1 u6 t        for(i = j ; i>=0;i--) printf("%d",f[i]);1 w5 @% P8 t$ q' b, ^# w
            printf("\n");
    * V* H1 m6 y# N) G9 I* b        return 0;
    9 a. Q9 Q) U9 T3 k9 \' w, k! g        }# \& \8 ]5 _" S- E1 @
      
    回复

    使用道具 举报

    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, 2024-4-29 20:29 , Processed in 0.614759 second(s), 99 queries .

    回顶部