1000×999×998×997×996…5×4×3×2×1怎么算?

学习 时间:2026-04-07 21:41:50 阅读:9051
1000×999×998×997×996…5×4×3×2×1怎么算?

最佳回答

闪闪的秋天

俊秀的咖啡

2026-04-07 21:41:50

不限位数和长度的乘法,1000的阶乘仅需20秒[VB。NET]CODE:Public Function ChengFa(ByVal strBeiCheng As String, ByVal strCheng As String) As String Dim BeiCheng(), Cheng(), JI() As Byte '定义数组 被乘数、乘数、积 Dim intCheng As Integer '乘数长度 Dim intBeiCheng As Integer '被乘数长度 Dim intJi As Integer '积的长度 Dim strJI As String '积的文本格式 Dim i As Integer Dim j As Integer Dim intWeiShu As Integer '所得积的位数,过程中还用于表示位数 intBeiCheng = Len(strBeiCheng) '取被乘数的位数 intCheng = Len(strCheng) '取乘数的位数 intJi = intBeiCheng + intCheng '确定结果的最大位数 ReDim BeiCheng(intBeiCheng), Cheng(intCheng), JI(intJi) '重定义数组 For i = 1 To intBeiCheng BeiCheng(i) = Mid(strBeiCheng, intBeiCheng - i + 1, 1) '给被乘数数组的每一位赋值 If Not IsNumeric(BeiCheng(i)) Then '检查输入的合法性 Return "被乘数输入错误" End If Next i For i = 1 To intCheng Cheng(i) = Mid(strCheng, intCheng - i + 1, 1) '给乘数数组的每一位赋值 If Not IsNumeric(Cheng(i)) Then '检查输入的合法性 Return "乘数输入错误" End If Next i For i = 1 To intJi '结果数组积初始化 JI(i) = 0 Next i For i = 1 To intBeiCheng '取被乘数中的每一位 For j = 1 To intCheng '取乘数中的每一位 JI(j + i - 1) = JI(j + i - 1) + BeiCheng(i) * Cheng(j) '相乘结果累加到c中的相应位 strJI = JI(j + i - 1) intWeiShu = 0 Do While strJI >= 10 'c中的每一位进位检查 JI(j + i + intWeiShu - 1) = strJI Mod 10 '本位处理 JI(j + i + intWeiShu) = JI(j + i + intWeiShu) + strJI \ 10 '进位处理 strJI = JI(j + i + intWeiShu) intWeiShu = intWeiShu + 1 Loop Next j Next i strJI = "" For intWeiShu = intJi To 1 Step -1 If JI(intWeiShu) 0 Then Exit For '去掉结果中的前导0 Next intWeiShu intWeiShu = IIf(intWeiShu < 1, 1, intWeiShu) For i = intWeiShu To 1 Step -1 strJI = strJI + Trim(Str(JI(i))) Next i Return strJI End Function Public Function JeiCheng(ByVal strShu As String) As String Dim intI As Integer Dim strTemp As String = "1" For intI = 1 To CInt(strShu) strTemp = ChengFa(strTemp, intI) Next Return strTemp End Function Private Sub Button1_Click(ByVal sender As System。Object, ByVal e As System。EventArgs) Handles Button1。Click Me。Cursor = System。Windows。Forms。Cursors。WaitCursor Label1。Text = JeiCheng("1000") Me。Cursor = System。Windows。Forms。Cursors。Default End Sub1000!=402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

最新回答共有2条回答

  • 安详的草莓
    回复
    2026-04-07 21:41:50

    不限位数和长度的乘法,1000的阶乘仅需20秒[VB。NET]CODE:Public Function ChengFa(ByVal strBeiCheng As String, ByVal strCheng As String) As String Dim BeiCheng(), Cheng(), JI() As Byte '定义数组 被乘数、乘数、积 Dim intCheng As Integer '乘数长度 Dim intBeiCheng As Integer '被乘数长度 Dim intJi As Integer '积的长度 Dim strJI As String '积的文本格式 Dim i As Integer Dim j As Integer Dim intWeiShu As Integer '所得积的位数,过程中还用于表示位数 intBeiCheng = Len(strBeiCheng) '取被乘数的位数 intCheng = Len(strCheng) '取乘数的位数 intJi = intBeiCheng + intCheng '确定结果的最大位数 ReDim BeiCheng(intBeiCheng), Cheng(intCheng), JI(intJi) '重定义数组 For i = 1 To intBeiCheng BeiCheng(i) = Mid(strBeiCheng, intBeiCheng - i + 1, 1) '给被乘数数组的每一位赋值 If Not IsNumeric(BeiCheng(i)) Then '检查输入的合法性 Return "被乘数输入错误" End If Next i For i = 1 To intCheng Cheng(i) = Mid(strCheng, intCheng - i + 1, 1) '给乘数数组的每一位赋值 If Not IsNumeric(Cheng(i)) Then '检查输入的合法性 Return "乘数输入错误" End If Next i For i = 1 To intJi '结果数组积初始化 JI(i) = 0 Next i For i = 1 To intBeiCheng '取被乘数中的每一位 For j = 1 To intCheng '取乘数中的每一位 JI(j + i - 1) = JI(j + i - 1) + BeiCheng(i) * Cheng(j) '相乘结果累加到c中的相应位 strJI = JI(j + i - 1) intWeiShu = 0 Do While strJI >= 10 'c中的每一位进位检查 JI(j + i + intWeiShu - 1) = strJI Mod 10 '本位处理 JI(j + i + intWeiShu) = JI(j + i + intWeiShu) + strJI \ 10 '进位处理 strJI = JI(j + i + intWeiShu) intWeiShu = intWeiShu + 1 Loop Next j Next i strJI = "" For intWeiShu = intJi To 1 Step -1 If JI(intWeiShu) 0 Then Exit For '去掉结果中的前导0 Next intWeiShu intWeiShu = IIf(intWeiShu < 1, 1, intWeiShu) For i = intWeiShu To 1 Step -1 strJI = strJI + Trim(Str(JI(i))) Next i Return strJI End Function Public Function JeiCheng(ByVal strShu As String) As String Dim intI As Integer Dim strTemp As String = "1" For intI = 1 To CInt(strShu) strTemp = ChengFa(strTemp, intI) Next Return strTemp End Function Private Sub Button1_Click(ByVal sender As System。Object, ByVal e As System。EventArgs) Handles Button1。Click Me。Cursor = System。Windows。Forms。Cursors。WaitCursor Label1。Text = JeiCheng("1000") Me。Cursor = System。Windows。Forms。Cursors。Default End Sub1000!=402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

上一篇 soft drink中文什么?

下一篇 what is he like?what dose he like what dose he look like?的区别