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>; d# i) z/ L) v* v/ V7 h
    using namespace std;
    " I* w# h! B$ s' L. W#define dd 1000000000 7 I# ]8 v/ {" _7 T" p  N" N+ L7 }
    #define maxn 36000% x: k5 M  H$ t& o2 l7 X
    __int64 a[maxn];
    ( E" w/ \; |; ?) iint digit; //位数., [& V6 r4 k5 y$ ^' e6 }  L/ t
    void solve(int n)  D% x9 I) N" q# B( @
    {# R" V% `/ f$ w% E% k
       digit=1;
    ; R( K, f+ G: e( g. S6 y5 X5 P   int i,j;4 ?" n5 N6 M$ B+ o' h% y2 j* @: g
       memset(a,0,sizeof(a));
    " `6 I' C; D( h! |" f* A   a[0]=1;
    8 f/ G! ]3 Q+ e& y   for(i=2;i<=n;i++)
    , [$ D8 w7 K3 Q) L0 s9 @   {- S# J0 _' E/ s5 H
           for(j=0;j<digit;j++)/ Y- H6 c3 ?: V+ m) b
           {
    0 a4 q6 Q2 D* J. F4 y8 p. p/ e           a[j]*=i;; G' a3 G6 b; M
           }  S  _  [! M: S" J
           for(j=0;j<digit;j++)
    ( }/ w) B% Y& u. W: p: K       {
    ' N, d( G: p4 u- E7 s           if(a[j]>=dd)# K, H1 q8 z* _3 V) l3 t( N5 |4 c
               {  J# L1 {% l5 C; j8 g( h
                   if(j==digit-1) digit++;
    7 R! E% g; d) ]& u. g               a[j+1]+=a[j]/dd;
    , ~$ r' _# r, S0 ]1 I               a[j]=a[j]%dd;2 r" x6 z' m5 L5 y
               }: ^6 p5 X. J; S9 p
                
    7 B! K0 W" d5 R3 J5 _* U8 w* V6 {/ V       }" N! w# y  j1 r6 `( u2 p4 T( H9 x
       }
    : d7 G& e- I2 H. p# t/ C}
    1 [& o3 x, d7 ^int main()
    " O- F3 z9 V/ R+ R% h# q3 I{6 d' Y7 R' c0 P+ o* A
        int n,i;
    ( L% q0 L. f' g: J. n   
    , [: U2 E& J% s% V& B: p    while(scanf("%d",&n)==1), {  z0 O6 m. ?: O+ }0 N2 Z
        {
    5 T- t$ `: W3 C% G  o       solve(n);
    6 H8 l1 R8 R2 u6 D       printf("%I64d",a[digit-1]);
    - h; s! P! J2 q, z6 x% I$ G4 |( K       for(i=digit-2;i>=0;i--)- L3 t: p: k3 E- d$ \
           {" j' g( k5 }; E) {  f
                if(a[i]<10) printf("000000000");//小于10位数补0." s' c6 I: r+ z- d4 ^$ B
               else if(a[i]<100) printf("00000000");
    . H2 v; L3 y4 r3 A) H0 l- L           else if(a[i]<1000) printf("0000000");- F& `3 c# J5 }3 ]  j4 V. @
               else if(a[i]<10000) printf("000000");' [  n' A/ o: L; Z
               else if(a[i]<100000) printf("00000");
    8 O8 x$ f" Z# i8 f8 u9 h! A           else if(a[i]<1000000) printf("0000");  M5 h  H7 E& j- @; G
               else if(a[i]<10000000) printf("000");
    7 @0 B+ M! l3 y/ _0 V/ F% w           else if(a[i]<100000000) printf("00");& n! Z7 B$ A) f7 r* B6 A
               else if(a[i]<1000000000) printf("0");
    2 I; |$ g7 j4 l/ R2 Z" C           printf("%I64d",a[i]);. }) e" X9 ]2 m6 |# D9 X6 L% U
           }
    + I9 X& M7 W$ L0 m' O       printf("\n");
    ' c  F& Z+ D, P    }
    * J, v) p' `% K2 {6 z/ m2 Z8 X    return 0;
    2 u' Z. J8 t5 x! b}& Q' ?2 H+ r- _/ @7 A# l$ w
    回复

    使用道具 举报

    3

    主题

    3

    听众

    64

    积分

    升级  62.11%

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

    [LV.1]初来乍到

    新人进步奖

    #include<stdio.h>
    ! P, ~5 H0 ~) s% T7 a3 C
    + z/ w3 i9 U( s* t' ?$ Ivoid main()) @! l) |7 x5 C" R+ H8 D
    {( s4 u5 u) e  u' q# I. E
    float n;
    $ ?: z6 J+ R/ yint s;' C, F" I/ S! a" }0 R
    printf("input a number named n:");/ g& r% }2 G9 [1 `
    scanf("%f",&n);. {1 T/ W/ m( \" i$ D
    s=fun(n);
    0 v1 X) F8 p3 y6 O2 _$ Jprintf("the result is:\n%d!=%d",n,s);6 X6 @, r4 C' h. {5 u# z2 Z
    }0 i% Z( d' _8 m5 ?% S

    - z) n! |7 T% Bvoid fun(n)/ z% _* F1 d# j' S0 O7 t
    {
    3 G9 l1 `" a" k* K/ e  int i,f=0;. x3 k8 I0 h+ y3 Z$ H0 B
    if(n<=0||!judge(n)) {return ERROR;! [% r' U: h+ Y
    exit ;}
    % M- x8 T; _0 R$ S4 t  while(n==1)
    " K9 Q2 h0 l, ^. E     f=1;
    1 W, h6 [" [% @! D% H     f=n*fun(n-1);
    ' C! y, i% t/ L6 |4 Creturn f;
    " M" W3 c; E; ?. n' {}9 [! U! @" I" o5 A. g

    8 O% y" }& b/ P, a  V7 xvoid judge(n)//判断一个数是否为整数
    ! \  o0 H) k* X1 Q3 d; S{
    4 b" @# J' z) b) r( Bwhile(n>0)1 I* M0 O' q/ L3 J) v
    n=n-1;$ o- E% F$ G8 T0 q/ S
    if (n==0) return 1;
    & a" z) u% \/ P2 q/ ielse return 0;
    3 L( ~/ U4 y- h/ T! X4 Z: ]' d% k* d}
    / c$ A: I3 T+ Z% \1 |  F4 j7 z; U- A4 k# L
    回复

    使用道具 举报

    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>- j+ j1 `/ g' U6 n+ b1 _
    #include<string.h>
    0 C- d6 {  }$ ]const  int maxn = 3000;( {- ^! q" f* O" L6 y* h6 v
    int f[maxn];4 K( a+ f4 z, b4 |# U/ R- ^. J
    int main() {& [' y  k, G8 F! l) x% U- b
    int i , j , n;
    . t4 ?! O6 @' y5 q. i/ I, U& v scanf("%d",&n);3 Q6 m( D; V# B2 H9 Z2 I
    memset(f , 0 ,sizeof(f));
    # N5 n& Q8 O$ `0 {. X# S f[0]=1;5 `% p  ~; L$ P5 ~. B
    for(i=2 ; i<=n ; i++)' Z1 X) y, J: \! P! f; A, M7 @
    { ( Z; h; _# }6 ~1 q( Y+ ?
      int c=0;
    " b6 h) q2 Y5 L& B; r  for( j=0 ; j<maxn ; j++) ; v1 e# L) e$ o; H! S
      {
    4 K: f* S, T. u4 [   int s=f[j]*i+c;+ B& T9 i; ~0 ?' b
       f[j]=s%10;: J; l* Z% j4 \, c/ l' O
       c=s/10;( k" c! ?1 \8 w) i; C! \% j
       }
    ( A1 d; U! _, K# @8 o* i4 d        }
    2 B& k9 n) s0 {  l% a; |* `        for(j =maxn-1 ; j>=0 ; j--) if(f[j]) break;7 e' T- y( Q% B1 t
            for(i = j ; i>=0;i--) printf("%d",f[i]);, Q+ {3 o3 L6 A- r8 l
            printf("\n");
    2 F" J( \/ ^  I) L' E# ~        return 0;! Z* S( {8 U; a6 I( x5 v
            }
      @$ F: U3 y  _9 Y  
    回复

    使用道具 举报

    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, 2025-10-1 07:36 , Processed in 0.898650 second(s), 99 queries .

    回顶部