1、Dim xl As Long, yl As Long, temp As Long, i As Longxl = Len(Trim(X)yl = Len(Trim(Y)ReDim result(1 To xl + yl)For i = 1 To xlFor temp = 1 To ylresult(i + temp) = result(i + temp) + Val(Mid(X, i, 1) * Val(Mid(Y, temp, 1)NextFor i = xl + yl To 2 Step -1temp = result(i) 10result(i) = result(i) Mod 10res
2、ult(i - 1) = result(i - 1) + tempIf result(1) = 0 Then result(1) = multi = Join(result, )Erase resultEnd FunctionPrivate Sub Command1_Click() 节约时间,算到1000!For i = 1 To 9calcfactorial i * 100End SubSub calcfactorial(ByVal n As Integer)Dim a() As String, i As Long, stimer As DoubleReDim a(1 To n)a(1) =
3、 1stimer = TimerFor i = 2 To na(i) = multi(a(i - 1), i)Debug.Print n & ! : 用时 ; Timer - stimer & 秒, 结果 & Len(a(n) & 位Debug.Print a(n)100! 用时 4.67617187496217E-02 秒, 结果 158 位200! 用时 .407124999999724 秒, 结果 375 位300! 用时 1.00012499999957 秒, 结果 615 位400! 用时 1.92199999999957 秒, 结果 869 位500! 用时 3.140136718
4、75 秒, 结果 1135 位600! 用时 4.68677343750005 秒, 结果 1409 位700! 用时 6.64099999999962 秒, 结果 1690 位800! 用时 8.9208984375 秒, 结果 1977 位900! 用时 11.5000117187501 秒, 结果 2270 位1000! 用时 14.5621367187496 秒, 结果 2568 位-137 与笔者的另一算法(Dim XYS() As Integer, x() As Integer, y() As Integer, result() As String, i As Long, j As
5、 Long, k As Long, TEMP As Long, stimer As DoubleIf n 0 Then Exit SubReDim x(1)ReDim XYS(1)x(1) = 1XYS(1) = 1k = 1Do While k UBound(x)result(i) = x(i)factorial = Join(result, Debug.Print k - 1 & Len(factorial) &Debug.Print factorialErase x()Erase y()Erase XYS()Erase result()Private Sub Command1_Click
6、()For i = 1 To 10calcfactorial i * 1000上述过程中,每步的计算结果得到的数组,开始的若干元素总有无效的“0”,导致时间和内存资源的浪费,而且数值越大,无效运算就越多。苦苦思索不得更有效的解决方法,请各位算法高手指教。输出结果: 用时 .015625 秒, 结果 158 位 用时.0471*秒, 结果 375 位 用时 .172625000006519 秒, 结果 615 位 用时 .266250000000582 秒, 结果 869 位 用时 .422749999997905 秒, 结果 1135 位 用时 .657000000006519 秒, 结果 1
7、409 位 用时 .891250000000582 秒, 结果 1690 位 用时 1.1571249999979 秒, 结果 1977 位 用时 1.48450000000594 秒, 结果 2270 位 用时 1.84412500000326 秒, 结果 2568 位2000! 用时 9.79700000000594 秒, 结果 5736 位3000! 用时 23.703125 秒, 结果 9131 位4000! 用时 43.7663750000065 秒, 结果 12674 位5000! 用时 72.0003750000033 秒, 结果 16326 位6000! 用时 104.1562
8、5 秒, 结果 20066 位7000! 用时 142.422749999998 秒, 结果 23878 位8000! 用时 192.125375000003 秒, 结果 27753 位9000! 用时 241.281875000001 秒, 结果 31682 位10000! 用时 302.859500000006 秒, 结果 35660 位 5000!=4228577926605543522201064200233584405390786674626646748849782402181358052708108200690899047871706387537084746657300685445
9、878486066683812736337210893772787631279390363058462160643904478986982239871929708896211612652968321775500399242196837031469072644728787897904047548841622152266719284109692369104495659717363529484002238403811206448202308576711045023061748947554283097617817240408053248099278093287840554861993645482912
10、118762582488021891739779000502132125980436392446264607705113588465951086754705858339246552255890354744359883473831789880346330084586315102090915099356538200109330479657425567419309170551728052002360750859911976352287559079020433697431235069168312119244959715562674075214621989862330886259983028598648
11、575787494459631152869708867100462684236481789899054546908613916132183441741488071862344481148312094903611965468727677556178868287202691048140924564103418359756042764581615131785759016610717825441569808833593727299956033713712004710494376562911424886053352994996423006999722049181201008190594391406750
12、532650047755338508990979451015510914869070044071195723360262433681323302187092876991968066565697527904222582678415610833764257810326292026872110702746813943511286015023261906499591718973641763784364912197091098409445148953589591038041769419566578348220717491055127526391483811720526048269651626427100
13、949193933326610301043605304591170145572095847143537219482466867934673759048722681334102078609036571088063766162497495074131070774016821805859455264451714092774692300626975113460441745679467358287822616295842486751573791729427241787831054298582451175755118845065744248275746608002385883784923962473687
14、615070157677258983211286322955370449025163879251275908417917446404669135310473479844649961545955420139963173574763017400367961929199421907628954456562617670417995381611333873128235115341525813090879158836383516647972259129442706535571425117373238072326329581217979166796923296870969239010032555747890
15、550998074870610472306461959849552396576122086738665141716993075576918979026751573420758647963453384468350859654907273263219105040642897130962245051620646694680988699171221274045040206849232662417601329102278666872703052847094525268254966177724996452066998369259106908940826374010434983715911264558222
16、806063613941153443167717699343536642849282944364147696158819936613882555774877099370045947539078451490344345211745605940399162684446976618213874707053255595779331964609966621453775649354741697085623892147732228655071824904300161861421927604523076706211429617672747041236161072200097437586474927536651
17、495321647808490751463300710166913134206628825626182838658369836321087607104275160733483477884147967324270804108607618412818883071150989821353384066106521470870468747609954274736735094515535997690403673533855510525716826503176824057439934148623923319814325791821933218989404508650136109980983839931109
18、963559813280010497315885963121318538012050467876429106693656004373056334319848790489985247012933007893445328681566797628804955328463860201334802652798369463933849956750499937078147465615434389304313842378789818478028860099710886956329883477118631223827859636531151323779313736473974293694114990287519
19、722279995451826154882989511519266821124513553184722099904353559498872999220350620398160110863762365397821723802378466506736245106350344231873153383082120438047109994192278210397475527174160438901697239613055493718448361198035658960620250090936643993601720073836133544050943290724765189095025077246758
20、419894122246593921631163520381473624795285397320893095334219106357028055766297201565565107677808059334536311218295617928876730028024509321227788529684182082617784769556449803856912757873726780409591587117339711031652326780607981276092461735041201826668742628053852758439791676090077433807484207511851
21、191029219603393762809867536650852128692553215367879325218825741018661370543289737358627253701785588066398513503869440396049282588201804191780736496938858025977583988920143897471654659735108526057062344020696370656601295357340435829614734272758056308395106673753492596595185756469397232182757800032505
22、938953038205396975588705115430739208274224405162997087395997684612062466290981123680125798912848025050940289169597650793954371913113793144274051355996303756422145272943417972461875979640742391478389935415658347161568584990367730566113538333670875489004130919816763307490415103375973072468858392469417
23、155482957307506185058815819595289926602256269034395733134506669729521152306686962279209477799743365744726734714089280714112838880826933773780772931041107675136394762006108580405960196390580157610023374638693522283858014349571781255814458629300424794040657368598620079146045902554139299500880447103847
24、589903265480973381669405000854527237135713949024638203086685418028383175276680642784895610057558599917189667864491540635700144971942498789208597312542755675145752063991181507363974831024907938417256534218942767691165981534300846370877695102954151365517346750540152397060425717460010899684404988459854
25、779779050316325684891565572310064997264987214808001817703577015029830088794872438877188844168330347087232395053776422329440957732191375823716739247042167230022568831357792303946889006624661825326584907244067670249395796972174674855629981831496656117439976804820941662574638796603051712749251192263676
26、153375243816562173307716501295209887548564671318626023876199643348679615144083289020610828331808912213258536828564699160079521051669604516954306142123057430068772174071554732179575770175959676405638127291538675136987123955705423509992286059754699621861955313541321391264366769004654299968116805507378
27、667706659880270629725020018828458861453443687714553613044144656133690928627482769819468364805509529686817587148599729730823329240947770852752799233048927196333147515633111927461503892192906167806079013834511370663006843762671998855151436812661373199121032354697867564212106248990055535640229243458312
28、64231038363416781719908354140411717740185950606674198348143345444247191436828225654380047860390575922417071802670646875454211626958746795398540784464654140381751149965273621123540880166990280149033225139460832668170930713868826549977374286127789417784752681328371818759103642140881783220739808059714203285309721443041845459183002833408705783138284973283
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1