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>
    $ T' R  v1 U; j( Vusing namespace std;* H/ i# e2 Q) v1 B( C0 Y5 M
    #define dd 1000000000 8 o! {. ?: O$ l6 W
    #define maxn 36000
    . _2 |) \, c) Q+ x3 [+ }9 ?7 z: Z__int64 a[maxn];' }  j! j$ B, I8 z& c7 r1 }1 \* G* f
    int digit; //位数.: `) L9 q$ K5 e, E7 w
    void solve(int n)5 D. _- B! ]! k" N; P6 M' U
    {
    7 n1 b) x' y* u: E9 [3 B8 F4 y! O4 ]   digit=1;+ Y# l- W2 P/ J& `
       int i,j;
    % Q# I, E2 n  N   memset(a,0,sizeof(a));  w2 |& I+ N' q3 W1 \
       a[0]=1;/ m$ }* I. u: H
       for(i=2;i<=n;i++)
    $ j4 h% a: w  O/ ]' K; z/ \+ F: q   {5 D3 f0 S0 m; n! ^: e6 M
           for(j=0;j<digit;j++)% C1 Z7 g+ K+ }0 {+ h6 F9 J
           {
    ' M5 C, b  g4 y6 \& N           a[j]*=i;
    & ~" T( Q  O( O# \5 h  c5 V       }1 j( X5 r; |+ |% e% w; d% m
           for(j=0;j<digit;j++)
    2 \0 x; K2 w- U- T; [, @% Q* @       {
    - }0 X, d+ T$ q  J- G* R$ M) L" E6 E           if(a[j]>=dd); X4 }* b0 L* f6 G# Q
               {" s( |: f( u, {, g' d' s; f- m
                   if(j==digit-1) digit++;6 ~. U% ^, E( Y2 Y& S9 S7 o
                   a[j+1]+=a[j]/dd;! [: Q5 \1 B2 z* R  ]
                   a[j]=a[j]%dd;
    0 ?* @6 a% R  Q; K% L6 ]+ [           }. G# g# A( l$ m. N, q' B# I
                1 h# P! s, b' o% d
           }& W# K7 I! C7 j  r# p
       }2 V. C: ?: E' W% O+ f5 a
    }- H( n% e  i+ q) [1 n, P& _
    int main()
    : a9 n* s9 g# d( C- H2 n{2 d- @9 b* |3 b, `: y
        int n,i;, ?9 K' S4 j- z: q1 C# U
        8 g4 m" Q* m- B7 n. h6 ?
        while(scanf("%d",&n)==1)
    : D5 N4 ~- t6 x    {
    $ B# D7 v# T& h2 r( d. Y       solve(n);
    $ e' {4 I) l" k, Z. j- {       printf("%I64d",a[digit-1]);
    0 h; p  i9 ~9 L2 n( c       for(i=digit-2;i>=0;i--)! M9 ]( J2 P: N
           {7 q: O* M- Q- e& n# F
                if(a[i]<10) printf("000000000");//小于10位数补0.) J( \& @& z0 ?6 C& z+ Z
               else if(a[i]<100) printf("00000000");$ m& C4 W& v% m3 \
               else if(a[i]<1000) printf("0000000");+ X; [: S  u$ v8 O; O; h
               else if(a[i]<10000) printf("000000");
    5 @: t# m& G* _4 y* V6 `/ ^           else if(a[i]<100000) printf("00000");
    . u4 c% [  p2 e4 w) j& p7 c7 Y8 x           else if(a[i]<1000000) printf("0000");5 \* H4 f. z8 T/ v* c
               else if(a[i]<10000000) printf("000");) ]' r$ m) g; K/ }3 r0 l
               else if(a[i]<100000000) printf("00");; P9 e8 S5 Z- I5 M  [6 e
               else if(a[i]<1000000000) printf("0");
    1 r, c& K2 }- p* g           printf("%I64d",a[i]);
    ' X6 {9 _$ z, a. [0 O       }
    ; \& F5 N$ B* F1 z/ j3 _' X       printf("\n");: U  L) j% [5 W
        }! E: t9 ^% V1 [- O/ Z
        return 0;
    ' P2 l* Q. ~: q5 h: p; ?}% ^- f5 b$ ~& f0 L
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h>
    + y" u9 Y, b# A; |  o
    $ D% U9 U) M2 Xvoid main()) C2 B1 p! r7 v
    {
    ) r) ]+ _- V7 M1 Ufloat n;
    ' F4 W1 b% j$ Y" g) X0 j" {* bint s;
    ; V* ]3 r# F# ]  Yprintf("input a number named n:");
    % K/ c  ~# {, T& b9 ]3 iscanf("%f",&n);
    $ Y. Y2 X' P' w! Q6 Xs=fun(n);# M! L) Y  J; S9 X( L/ u( H' D
    printf("the result is:\n%d!=%d",n,s);
    7 W2 f) H9 Q( Q# T" e: n% o}( B, v- o& S/ x9 k& Q
    % p7 K  c+ l$ F8 f1 T' h$ r
    void fun(n)
    ) c0 `6 [4 b1 {5 }1 u. \; z{3 }5 ?, e5 b- g+ L1 s/ H
      int i,f=0;
    7 H+ v) y* Q' n) Iif(n<=0||!judge(n)) {return ERROR;( x$ A" x* @8 i# x0 W
    exit ;}
    2 Z. P, C+ q" c8 U' j  while(n==1)
    ' z) P+ M6 U/ ]8 N( m2 J     f=1;
    5 k( F; B+ a/ d4 a$ \     f=n*fun(n-1);- }" L9 R& F9 n2 Q
    return f;3 H7 M3 l  j4 [& q1 x4 S
    }
    8 B; m3 ?, }/ E8 |5 o4 \" Z- k( {, ~( V* N6 a
    void judge(n)//判断一个数是否为整数
    6 X* u" L7 t; p/ J) K{
    . N+ p$ [' t% F6 `$ x* q1 K, Twhile(n>0)% S9 e: }% `. D
    n=n-1;
    7 x1 D( V: K* K" J' K: ?' tif (n==0) return 1;& _0 v3 r8 [0 k1 _# G4 q
    else return 0;6 ]: z0 x* Y: M) A7 }
    }% R/ S" `  d: u8 b9 d# z/ S
    ; i5 j5 x0 V9 L' v; 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>
    6 x: {7 w5 t7 p+ v2 S( \! l2 }+ Q#include<string.h>5 I$ F4 P2 G+ p- \
    const  int maxn = 3000;
    , G' n$ n4 o. Sint f[maxn];- N4 q% W: C7 l* l8 K
    int main() {
    + x& G( D- G! \) Z+ Y2 i/ Q# x4 N int i , j , n;# [1 [0 S- j. J7 b
    scanf("%d",&n);
    ! T) n2 Z$ V2 f1 V* N" W memset(f , 0 ,sizeof(f));7 d/ ?3 I* ?  l7 |% c! h
    f[0]=1;
    % {% z2 h: }/ _  s/ A+ c8 V7 g for(i=2 ; i<=n ; i++)
    9 P) h# ~3 p* R8 m' l { 2 U1 x7 g; a7 o3 G$ ~
      int c=0;! ]' R, Q; B6 d" _
      for( j=0 ; j<maxn ; j++)
    ! K1 y+ A: n. e4 b1 P! }6 y, x0 }  {
    # ]" u+ r1 e! c5 L1 k   int s=f[j]*i+c;
    2 N3 E( a% C' q+ }3 x   f[j]=s%10;$ F) ?7 C) H9 Y
       c=s/10;6 \3 n6 b; l6 J$ Q6 Z
       }
    ; O, n" g+ z5 I2 W1 x        }6 R9 H% i, q% T$ V
            for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;
    ( N) B! _9 S! I: {        for(i = j ; i>=0;i--) printf("%d",f[i]);9 B0 `/ i4 g, {" |, |) n
            printf("\n");/ Q- K8 B- P' D* Z) U
            return 0;3 p7 R% ]8 r1 I# k8 w3 X
            }
    2 l* l1 m0 R7 Z, ]3 H  
    回复

    使用道具 举报

    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-7-20 01:24 , Processed in 0.500445 second(s), 99 queries .

    回顶部