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>0 S9 E8 a" I% }, F6 {- a$ S' d
    using namespace std;
    + [4 Z% ~& j% y) t' s- f#define dd 1000000000
    ( K, X! Y$ K8 Z, f7 }; ]! r#define maxn 360001 l* d& w) E! x1 o5 l+ i
    __int64 a[maxn];3 `9 r( b/ a7 A1 ~( ]( ^* O7 ^
    int digit; //位数.
    ; b$ \' t5 L3 l& q* Zvoid solve(int n)
    & v7 q4 s, s4 T  H! |4 T{
    ' d2 k! h, b+ r6 N2 e   digit=1;
    3 s% }0 i" r9 C" Q1 a   int i,j;; b, t" _, n6 q
       memset(a,0,sizeof(a));
    - |4 q3 S3 t0 W/ s- {) K! ^   a[0]=1;
    2 N5 V( c# v. G, a) A! h   for(i=2;i<=n;i++)
    & P) V( d4 [/ D) k0 g) ?   {
    0 r* m( F$ u% d       for(j=0;j<digit;j++)
    : ~1 P5 e. b) c2 t. \       {
    & E  i4 F# C: X/ c; i, P           a[j]*=i;8 w8 V, ^( V  f
           }
    + g! i" q9 k+ k, V+ n       for(j=0;j<digit;j++)3 q( ?, ?6 W& o
           {
    ! ?0 ]7 s# P) A2 g) w$ E           if(a[j]>=dd)4 Z; k. p# F0 Q0 e0 ^4 d7 d3 o
               {" ^1 h& b/ i* X' k0 }$ l
                   if(j==digit-1) digit++;
    , f- g. g6 h! \7 ]0 E4 p* b# Q               a[j+1]+=a[j]/dd;
    # {7 \5 D* t1 F- E* R               a[j]=a[j]%dd;
    0 c$ l, Q2 x0 t           }
    " S! C6 x$ N8 I$ A- ]2 K* W            
    * z9 _/ k. m: D/ J2 i+ F       }
    * _/ Z0 p5 D0 P, ~7 g% \- E/ ^   }
    3 _2 d2 N' g- O2 K1 v4 O}
    . |7 }) O& q) s/ iint main()
    7 l8 T% b  E. Q4 _, n{
      O" C9 K" k* L. S: N( @5 k/ O    int n,i;3 X, u7 I7 e, x" H! N* V
        / j& I" P' G' G# {# `, U
        while(scanf("%d",&n)==1)
    # q8 Y& x& ]# m% i    {- j  L# u7 V: i4 @
           solve(n);
    " u, b) f. I0 ~* w6 ^8 `4 u" U       printf("%I64d",a[digit-1]);
    3 U7 U2 S; o3 ^' E; T9 C       for(i=digit-2;i>=0;i--)
    $ k7 F% a  e. A) Q4 R       {' E; G' ]4 q) G5 y: o2 K
                if(a[i]<10) printf("000000000");//小于10位数补0.
    " c% L# d0 w1 J- N% K           else if(a[i]<100) printf("00000000");
    / L2 b. z$ }1 G* h+ t           else if(a[i]<1000) printf("0000000");
    % Y- X: M* `3 L  I7 p& [2 g           else if(a[i]<10000) printf("000000");! |# d, D+ Z& J; o+ c
               else if(a[i]<100000) printf("00000");- B# `! x$ K& d% K. Z
               else if(a[i]<1000000) printf("0000");2 _, v3 C+ r: F9 t" q
               else if(a[i]<10000000) printf("000");
    . G  K% l' X  W- C+ e           else if(a[i]<100000000) printf("00");3 v) X! I2 X6 ]- @2 ?; O8 k
               else if(a[i]<1000000000) printf("0");
    & p& Z' J: W& d1 ?8 B' `% l           printf("%I64d",a[i]);
    : a, E3 v4 m% }9 B       }
    / n- o8 p6 c3 u       printf("\n");
    0 k) O# I3 O# G- F3 }+ e3 H    }
      k4 K! x9 F& V$ w    return 0;
    / }& B$ d/ ~$ g6 ^}  g2 N) B. X4 M, _6 Q! r2 X( v
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h>
    : D2 o8 ~9 q0 d8 y3 e& E  n- s# E8 J0 {  q  W
    void main()0 P; v: e4 Q3 V5 r/ f
    {! o6 I! N, Q1 J" O$ r3 Q' ~* ~
    float n;
    ! ~0 L" l, N( v* d0 w$ l7 P& [int s;! X: @: k0 ~5 F- t* r0 Z6 u% J% g
    printf("input a number named n:");
    2 @: p  [% W0 U% p( u- Gscanf("%f",&n);
    / m0 x- S1 q: R1 L3 Rs=fun(n);
    8 m. c5 V% R% z! \printf("the result is:\n%d!=%d",n,s);
    " Y- K( w4 C# z. `$ [$ _. z}
    ) p" H9 }' N% U  ?* ]/ J
    ; `- j3 n: i7 ~void fun(n)
    . D, ~3 G! K- |& w0 {2 H{
    6 y) i, E; n. {# v, b  F  int i,f=0;
    1 N1 S, k$ ^1 q0 g# T- bif(n<=0||!judge(n)) {return ERROR;
    0 O2 G# c6 {. T: p! i exit ;}
    ) q- {7 Q- H- T0 {6 q- r- ^! M+ H  while(n==1)  r4 ?. ?! t2 a
         f=1;. f6 P2 _* p- b/ j! o
         f=n*fun(n-1);' C+ c' A$ d8 X$ ?. j, K
    return f;
    1 k# F7 n8 f5 W/ w7 I}: ]; u8 P1 `7 N  K* Q9 o; @% R% q

    4 w: V* Y% d2 }$ Dvoid judge(n)//判断一个数是否为整数
    - }  D' `2 s5 t4 Y. n( m{$ F1 E1 P) `0 O: A$ T
    while(n>0)
      X$ f  s; Z& R8 Kn=n-1;
      O0 k& i; p) Mif (n==0) return 1;
    2 n& e3 w, S6 n5 h! Oelse return 0;) t! v. ~1 m7 \) u5 l9 f$ }* S
    }
      w6 o! Z; R* J; H- J& W, b
    $ q3 a+ q5 r1 s& x! Q* 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>- J3 K! Q( P4 Y2 c5 z, I5 @* ]; u
    #include<string.h>  t( g$ t0 t! `6 G# h' I
    const  int maxn = 3000;% t% j" G$ d$ n; ]+ k& L
    int f[maxn];
      t1 l# K) w5 Zint main() {
    ; d$ Z  u  _: G; D% d5 R. `! Z int i , j , n;6 u" U2 y: F! Y6 v
    scanf("%d",&n);
    7 D$ x; k  E, s  e5 P& W, m2 t" e memset(f , 0 ,sizeof(f));8 r3 c4 |$ v( l& U# g: |
    f[0]=1;: V7 E) G/ C* m: d' m& r) U
    for(i=2 ; i<=n ; i++)& i/ X0 w& Y5 }+ M1 o$ H, @
    {
    ; H. h9 x  p/ L# M1 c  int c=0;
    3 _7 `( L. B  q( t: _% J  for( j=0 ; j<maxn ; j++) / E# R. Q- J6 ~( w" Q
      {8 W) d7 R) F# O$ P& L$ F) v( V
       int s=f[j]*i+c;
    7 L! F3 F1 i; r* z  V0 X   f[j]=s%10;& R- Y, x5 U3 o# a! U6 n
       c=s/10;
    / u+ ^3 X  q! H$ k; ^   }/ f/ l" f! `: p; {- A; L7 Y+ Y
            }! Q% Y; q: R1 X
            for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;
    5 V+ N; E, }1 S, i, i! O        for(i = j ; i>=0;i--) printf("%d",f[i]);- `4 q) b/ W* R
            printf("\n");' H' I& N& Z7 g: L6 V9 T7 S- V
            return 0;
    - ?, {8 v! A! k: A        }2 u2 ~& _  v' [9 _9 @  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, 2026-6-3 13:16 , Processed in 0.750500 second(s), 100 queries .

    回顶部