中央論壇 - CENTER BBS

標題: 1+2+3+...............最大】的程式碼! [打印本頁]

作者: wc_big_pig天尊    時間: 2008-3-22 05:01
標題: 1+2+3+...............最大】的程式碼!
Option Explicit

Private Sub Command1_Click()
   Dim I, N As Long
   
   If IsNumeric(Text1.Text) Then
     Text2.Text = "0"
     N = CLng(Text1.Text)
     For I = 1 To N
       Text2.Text = LongNumAdd(Text2.Text, CStr(I))
     Next
   Else
     MsgBox "N並須為數值!!"
   End If
End Sub

Function LongNumAdd(ByVal Num1 As String, ByVal Num2 As String) As String
  Dim A, B, I, R As Integer
  If Len(Num1) < Len(Num2) Then
    For I = Len(Num1) + 1 To Len(Num2)
      Num1 = "0" & Num1
    Next
  Else
    For I = Len(Num2) + 1 To Len(Num1)
      Num2 = "0" & Num2
    Next
  End If

  For I = Len(Num1) To 1 Step -1
    A = CInt(Mid(Num1, I, 1))
    B = CInt(Mid(Num2, I, 1))
    LongNumAdd = ((A + B + R) Mod 10) & LongNumAdd
    R = (A + B + R) \ 10
  Next
  If R > 0 Then LongNumAdd = R & LongNumAdd
End Function
作者: wc_big_pig天尊    時間: 2008-3-22 05:01
Private Sub Command1_Click()
Dim S(1) As String
S(0) = "123456789876543210123456789"
S(1) = "9876543210123456789876543210123456789876543212345678987654321012345678987654321"
Print mADD(S(0), S(1))
End Sub

Function mADD(ByVal s1 As String, ByVal s2 As String) As String
Dim I As Integer, St As String, T As Integer, X As Integer
If Len(s1) < Len(s2) Then St = s1: s1 = s2: s2 = St
X = Len(s2): mADD = s1
For I = Len(s1) To 1 Step -1
    If X > 0 Then
       St = Int(Mid$(s1, I, 1)) + Int(Mid$(s2, X, 1)) + T
       X = X - 1
    Else
       If T = 0 Then Exit Function
       St = Int(Mid$(s1, I, 1)) + T
    End If
    T = -1 * (Len(St) > 1)
    Mid$(mADD, I, 1) = Right$(St, 1)
Next
If T Then mADD = "1" & mADD
End Function




歡迎光臨 中央論壇 - CENTER BBS (https://www.centerbbs.com/) Powered by Discuz! X3