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>9 O$ d+ O7 H0 b. }
    using namespace std;
    5 Q0 f( S( E, d3 \6 S. r2 o; q#define dd 1000000000
    : N' V6 j% P; a. ^% `#define maxn 36000
    ( b1 m/ }7 K- z" d$ e/ J5 Y7 _7 Z__int64 a[maxn];
    + _- l. }! X$ |& cint digit; //位数.
    ; ]. g/ i/ y, ^: z. Pvoid solve(int n)
    5 k0 b' `: J3 j{
    + u$ f2 X1 V( l4 S3 R8 }. t   digit=1;; J1 \4 j- K7 w, _' P6 J
       int i,j;$ [3 N# I( _9 W6 u. I1 r' p6 X; u
       memset(a,0,sizeof(a));
    ; w! N  I& Q  P   a[0]=1;
    ( m' X% d5 B7 y  Q/ b   for(i=2;i<=n;i++)
    0 l8 `  P* [$ k# M* m   {/ h8 ?9 b3 k4 r) u) z
           for(j=0;j<digit;j++)8 }4 d6 U+ N& N4 ]" J( {( F( w' i( h
           {. \' f5 ^. y  `6 q' K9 t
               a[j]*=i;8 v9 M- O; i% j) _% ^! R
           }2 _% B% I% p2 ^: k, f" X! \: K
           for(j=0;j<digit;j++)# o, U" u9 v* k& H! y+ Q5 n
           {
    ( u" p0 P& b! w$ d           if(a[j]>=dd)
    0 n* ?7 S$ q9 b, f6 z3 n& i           {
    * w: b, y; w. C; A               if(j==digit-1) digit++;
    ( T7 S4 D  L5 A               a[j+1]+=a[j]/dd;
      ?" c' g! U, N( f               a[j]=a[j]%dd;! A1 {# T5 T* l  r
               }# v5 h% r3 @- o) d3 e  x7 S
                
    ) J. f  u' V7 X9 V- ^       }4 x# W$ `' C7 A4 Q* S4 z1 i7 [
       }' I7 L  E/ v& }% g3 [9 t- ~) v
    }
    # r0 N4 ]# @- j1 |int main(); Q% g9 I$ Z. M& C& a7 A+ b
    {& y' q- D& p& q) V/ p- B8 p
        int n,i;
    ; `2 H7 A) t* z% F; i    : g, U6 G# `- w# R3 M/ o
        while(scanf("%d",&n)==1)
    ; F  {9 T. G. o/ e: E/ R    {
    ; Z, {4 ~7 f: M8 T       solve(n);
    4 ~3 a* P3 B" M5 [& M- n( W% D       printf("%I64d",a[digit-1]);7 q7 T; w" F1 \% G3 M
           for(i=digit-2;i>=0;i--)9 F9 B" G3 K! y# q) t
           {
    7 o) e  }! L6 V4 o0 H            if(a[i]<10) printf("000000000");//小于10位数补0.
    $ Z5 o2 A8 D2 @$ t& Q           else if(a[i]<100) printf("00000000");
    ! j* p$ v( l5 u1 g: m           else if(a[i]<1000) printf("0000000");
    " M  c9 t+ U8 b! q; x% h& p) j, b           else if(a[i]<10000) printf("000000");
    0 ^( K+ l1 V8 J+ J6 Z+ f           else if(a[i]<100000) printf("00000");
    : t- E0 m) a5 w, B7 U. |           else if(a[i]<1000000) printf("0000");
    8 ^: S3 t# p- A% h           else if(a[i]<10000000) printf("000");
    ; h9 P. s) b# b7 M  @           else if(a[i]<100000000) printf("00");
    2 }# }4 \( s: O3 l3 ^           else if(a[i]<1000000000) printf("0");
    , X3 l0 c/ @; L           printf("%I64d",a[i]);
    / R% m9 _$ N) i, C       }9 F/ s5 d: ?7 J. B
           printf("\n");( r. w1 e4 Q( d, a9 T
        }
    ' s. \' P% L1 ?; ]    return 0;' z0 s( R1 f0 W, r) L0 ?3 V9 l
    }) L( I5 d% ^5 E( {4 k  A! Q
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h> 6 y2 P, a. l* C  p% f

    & D, c+ Z- q) }void main()
    * \& P! S- \+ g; i{
    ( K) s, {  o. \7 ^1 q1 @6 ^  \float n;8 L" r& i- U# y
    int s;( d! O+ `9 a0 T# `$ x  p
    printf("input a number named n:");9 ~# w) i# ?* h
    scanf("%f",&n);
    2 ?) b) v4 A. ?s=fun(n);* Q3 D4 S6 `& L4 e, v! I8 u
    printf("the result is:\n%d!=%d",n,s);
    ) w: m! L5 _- ^1 p( G7 C) @}
    2 N& g4 Q( w% s5 }# x. x) S' ^, h' m
    & v8 w) E* ^' v6 s1 T( |) [void fun(n), f. U5 H: _! ?- u* O9 q
    {) {& L2 y. h7 \) j) ]. W
      int i,f=0;
    # a# D  u' w( Z3 dif(n<=0||!judge(n)) {return ERROR;
    ' j# u6 G- C" q) L exit ;}' j% l* @% Y" [5 S0 O
      while(n==1)
    & l& j' p7 f4 m) c: N     f=1;
    , E7 E7 J$ c. Q0 D& e$ {     f=n*fun(n-1);
    ! i/ |9 w2 Y  a" T. z) xreturn f;0 A; t" ?/ X0 e9 e& h& z
    }
    + S# H2 ]* G. {) R8 O& d4 R& I3 \8 Y4 I! h
    void judge(n)//判断一个数是否为整数5 r. [4 z. K+ C; ]" b
    {+ W. @! }- m3 P$ @/ W
    while(n>0)% P6 ]1 n, f( {* h# N
    n=n-1;+ W) {. l0 I7 _1 ?+ [
    if (n==0) return 1;
    7 `% A2 j) D! o. x9 ?2 Yelse return 0;/ H4 J# D: P& W$ D6 t
    }( ]4 U: n# {5 ^$ {
    - o9 T* U3 U2 W3 J* j# b  R# y
    回复

    使用道具 举报

    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>
    , D9 u9 t' O- z: O1 `7 {) g  f1 g& }#include<string.h>
    * T) ^* e8 D9 ?% ~: ^4 Vconst  int maxn = 3000;* G5 J; F& H3 f% G4 \2 D# a$ ^: r
    int f[maxn];
    / n5 |) T: o4 lint main() {
    ! |8 e2 \# p1 M7 i4 L' u0 B. D int i , j , n;4 E# o8 z% U8 _- }% v* E0 ?0 U
    scanf("%d",&n);
    1 B' V( Y' M) G$ F/ S& w0 q memset(f , 0 ,sizeof(f));
    ' X% s/ S1 g! q! j. X3 X f[0]=1;
    7 A8 w, f) M7 w3 T4 K: m2 ^ for(i=2 ; i<=n ; i++)& D  y) Y3 a- [! f' R
    { % r4 y$ h1 I0 {
      int c=0;
    , T: R( N) A2 O  for( j=0 ; j<maxn ; j++)
    # }$ Y$ V4 h0 j" q. G% \, b  {7 e4 n9 E& K2 x7 t7 U4 F$ T
       int s=f[j]*i+c;, I7 p) r- z" P9 ]
       f[j]=s%10;
    % A) Y& v+ b5 \1 y  Z) t5 f4 d# b   c=s/10;! Z8 ]+ h1 X- J5 j
       }! @7 a& ~% O4 [( a  _
            }
    + `+ Q8 w( A0 z' `% p1 ?3 v* k! o        for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;& b# k: \. q& n, g& Z
            for(i = j ; i>=0;i--) printf("%d",f[i]);
    9 E& k( i+ }) W% e) M1 \        printf("\n");  q" \( d$ w& E1 t. o) @
            return 0;
    0 u" B# x; ?; O        }
    , i9 c1 O  Y% G& o/ N  
    回复

    使用道具 举报

    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-4-17 06:33 , Processed in 0.335756 second(s), 99 queries .

    回顶部