多位数乘法计算

Option Base 1

 

Private Sub Command1_Click()

 

      Dim M As String

      Dim N As String

 

      M = Trim(Text1.Text)

      N = Trim(Text2.Text)

 

      Dim Number1() As Byte

      Dim Number2() As Byte

 

      ReDim Number1(Len(M))

      ReDim Number2(Len(N))

 

      Dim index As Byte

 

      For index = 1 To Len(M) Step 1

          Number1(index) = Mid(M, index, 1)

     Next index

       

     For index = 1 To Len(N) Step 1

         Number2(index) = Mid(N, index, 1)

    Next index

     

    Dim Result() As Byte

    ReDim Result(Len(M) + Len(N))

 

    Dim MCarry As Byte

    Dim ACarry As Byte

    Dim Remainder As Integer

 

    Dim i As Integer, j As Integer

    Dim Mtemp As Integer, Atemp As Integer

 

    For i = Len(N) To 1 Step -1

      For j = Len(M) To 1 Step -1

         Mtemp = Number1(j) * Number2(i) + MCarry

         MCarry = Mtemp \ 10

         Remainder = Mtemp Mod 10

         Atemp = Remainder + Result(i + j) + ACarry

         ACarry = Atemp \ 10

         Result(i + j) = Atemp Mod 10

     Next j

     Result(i) = MCarry + ACarry

     MCarry = 0

     ACarry = 0

  Next i

 

  Dim Mstr  As String

 

  For index = 1 To Len(N) + Len(M)

    Mstr = Mstr & Str(Result(index))

  Next j

 

  Label3.Caption = Mstr

   

 

End Sub

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值