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>
    4 j1 u; {3 D( ousing namespace std;
    - U. E" k- |5 w" J( w#define dd 1000000000 7 x. [5 T& |" [* t
    #define maxn 36000* d3 h. x/ }8 ?
    __int64 a[maxn];* z' H8 A( a# k# U/ M$ z
    int digit; //位数.2 j- H1 p& B/ O3 t8 j
    void solve(int n)9 a+ W/ ?& a6 U- ~. _! [
    {
    . O2 I/ u. _/ s. v' O# Z; S. \. C   digit=1;
    / t" n. A( p' u( w( N- F0 w   int i,j;
    # y2 o" K- [( ^/ z5 z   memset(a,0,sizeof(a));
    + p5 ]* _) |, p/ Y   a[0]=1;4 X) P4 c2 U% a5 E0 X. D
       for(i=2;i<=n;i++)
    4 }% W& ~6 _* O$ I( y, c   {
    8 |) W/ ]: n7 B5 s! T- s! ~       for(j=0;j<digit;j++)$ V5 W- W' m0 M1 _* O
           {4 g# E8 k4 ~5 ]1 T
               a[j]*=i;
    . _3 w2 j& v! [' v9 R       }
    ) m  C2 L, p# U  t: l       for(j=0;j<digit;j++)
    , ]& }  B( M* X/ k: h# g3 l# s/ g8 @       {' \2 {! U8 f7 b* }+ P9 F# ]2 u
               if(a[j]>=dd)
    ; `/ l8 P5 i$ P3 K9 x           {, q8 s5 X( ]# @- G
                   if(j==digit-1) digit++;, f- t5 s( Y7 e' Q$ _
                   a[j+1]+=a[j]/dd;5 \) k% L% s  l6 c  S) c: |
                   a[j]=a[j]%dd;
    0 {$ Y# ]# G7 N" R  P( r6 M           }
    $ J. C# p2 k% }% M! J+ Q; `: y1 S            
    / }8 W  T2 u! q  R1 J. \6 F9 S( I       }7 V0 j. E- j7 I
       }; h/ V  g) F" s2 f2 i; l( {
    }# D& \* b( @. s9 g! x" A. X  _' y
    int main()
    8 _, q1 y$ `( G6 s7 ^- f: E+ C{: S9 ]3 ?. {" Y6 v& L! _" W
        int n,i;
      {, \& ^) v6 e- ?" W0 d    ! l2 _0 s+ z7 W5 A
        while(scanf("%d",&n)==1)
    5 Q$ R# Q% u! a& V( ^7 d    {
    ; ~- a/ U+ o% K4 K7 p       solve(n);
    ( v% c- s0 [  g; V3 k4 e       printf("%I64d",a[digit-1]);
    . ?( ^* J4 d5 Q$ Z/ P       for(i=digit-2;i>=0;i--)
    % D% Q9 B2 g! z. e# [       {
    1 F1 A! R  Q, j) G. }( U/ ^            if(a[i]<10) printf("000000000");//小于10位数补0.
    1 \3 C6 z6 [% @           else if(a[i]<100) printf("00000000");; G& T* p1 S6 ^7 Q  H& [1 @
               else if(a[i]<1000) printf("0000000");
    / h8 [+ N6 `) L8 Q9 E           else if(a[i]<10000) printf("000000");
    & c# f. B9 G5 e/ ?/ v: \           else if(a[i]<100000) printf("00000");# k% Z! b  l4 ^% m1 |( X
               else if(a[i]<1000000) printf("0000");
    : i& k- v0 J9 o& h1 v8 V9 g3 R2 |           else if(a[i]<10000000) printf("000");
    % x5 @: z0 Y# p# a5 H. c5 x) ]           else if(a[i]<100000000) printf("00");! d/ z0 f3 `, a) |5 o1 g& H
               else if(a[i]<1000000000) printf("0");& s4 ~. Z% ^% b1 J/ M
               printf("%I64d",a[i]);! j9 N' h6 H/ a6 L
           }
    1 p1 N/ h- J6 h, A       printf("\n");
    " Q  y) W: b9 i4 a  j    }0 t; z5 E, [, W: V; M0 K6 f4 F
        return 0;
    3 _! m9 y3 s, W) t7 t3 r( U}% t8 g8 _! D& o# p, Z$ ~5 d5 ~
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h> 3 S( J3 T; o( r3 @; u

    4 u! Z4 m. e0 g& C. E4 w) Ivoid main()& y- h2 h9 \8 @' Y7 M7 `! K5 ~2 D3 C
    {
    8 E% y1 c9 N) Z2 j( N2 U4 |: qfloat n;5 |! w& `" [( ]9 D! [7 W
    int s;
    ! y! \, _' }# @* F% f" x, A* O& Xprintf("input a number named n:");6 s) e7 m8 W6 K0 p" ]$ J9 X+ \
    scanf("%f",&n);
    # h1 u6 D4 P8 r+ S! N7 `: xs=fun(n);
    5 U7 T5 c( Z) Bprintf("the result is:\n%d!=%d",n,s);
    $ G2 m$ l$ p4 g! X6 N) _}) ]9 n' Z) W* d

    ' v% W0 M+ ~5 Tvoid fun(n)
    1 \+ s; d+ b2 I5 Q{
    " S$ Z# `9 v+ @5 z& e5 k  int i,f=0;# H; t0 s8 F5 @5 U* @% r& A
    if(n<=0||!judge(n)) {return ERROR;- S" d6 ^. s# x9 i1 ~
    exit ;}3 t. [0 K3 |( o+ m! g& Y1 S
      while(n==1)8 Q& A& N! o, m) U  g+ r2 }
         f=1;
    8 o+ q! Z& J# c; C     f=n*fun(n-1);  H. K+ y: g+ D! [
    return f;
    ( `1 F5 B; H. l+ G6 f1 N; V}: v; Q- p7 w2 n6 P

    3 T% }! e0 K8 w# H9 i; C3 Gvoid judge(n)//判断一个数是否为整数2 c: x4 R& k+ W: o' U" r
    {/ b0 {6 i2 N( b) d: H8 n/ e
    while(n>0)
      ~! B+ X9 u. F0 e9 {' `/ gn=n-1;
    - s+ T% W1 C  T5 Z0 F2 c& |* Xif (n==0) return 1;
    & c+ k/ E( \* c% aelse return 0;
    4 e1 I! n7 ?# A; k, [1 r7 f}
    3 A7 Q( n- w! F* c9 D& P- p  K' u" s  Y! C( C. q
    回复

    使用道具 举报

    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>
    ; L+ a% B. `& Q: y4 ~& E$ ]#include<string.h>
    # E& |* V, c7 N$ oconst  int maxn = 3000;
    3 E$ e6 S' o( R8 l  ~int f[maxn];$ O0 x1 ~, F8 Z" W
    int main() {" E6 d- J* j% k% G
    int i , j , n;6 h2 f0 I9 A" X! d# M
    scanf("%d",&n);
    * g9 @7 U8 k# x+ s# }$ y( L memset(f , 0 ,sizeof(f));
    5 y9 V, u" j# I* n6 n. ^4 h f[0]=1;
    # E. |/ C$ d: \3 n' \+ o* y for(i=2 ; i<=n ; i++)+ L0 S' S" p2 ~; C: ~+ O  H* V, k" `$ a
    { / o! U. f; e- J1 v9 r* `
      int c=0;
    4 n% c8 t, Q. ^9 q5 }0 C  for( j=0 ; j<maxn ; j++) ' H  k# y( M& Y) V* E
      {
    & v; L7 \5 r) }4 M4 M- V7 x. r   int s=f[j]*i+c;
    " M5 N! D! {+ G5 N+ S   f[j]=s%10;
    7 {8 F  v6 x9 H$ q   c=s/10;
    * N3 Z% F' d' r; j9 R   }) [6 E! z3 }2 W. b+ l% j2 }* c" O
            }( s" z% E+ ~/ x
            for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;
    & Y! G9 a5 ^2 U1 k. E        for(i = j ; i>=0;i--) printf("%d",f[i]);
    5 H' e5 }% A) M0 h0 O! i        printf("\n");7 ]1 W; f6 R* f4 N% m" u4 v
            return 0;. A/ x& ^, U* x( E6 b7 C
            }
    2 S  R1 p- V2 H' w  
    回复

    使用道具 举报

    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-14 07:57 , Processed in 0.495898 second(s), 99 queries .

    回顶部