已在另一贴给你回答了
http://expert.csdn.net/Expert/topic/1470/1470061.xml?temp=2.262515E-02

解决方案 »

  1.   

    For i=1 to 20
    .....
    Next i
      

  2.   

    Const SngNumber = 20
        Dim SngSum As Single
        Dim SngIndex As Single
        For IntIndex = 1 To SngNumber
            If (IntIndex Mod 2) = 0 Then
                SngSum = SngSum - (IntIndex - 1) / IntIndex
            Else
                SngSum = SngSum + IntIndex
            End If
        Next
      

  3.   

    Private Function sumx(n As Integer) As Double
        Dim fz As Double, _
            fm As Double, _
            sum As Double
        
        If n <= 0 Then  Exit Function
        
        If n = 1 Then
            sumx = 1            
        Else
            sum = 1
            fz = 1
            fm = 2
           
            For i = 1 To n - 1            
                If i Mod 2 > 0 Then
                    sum = sum - fz / fm
                Else
                    sum = sum + fz / fm
                End If            
                fz = 1 + i
                fm = fz + i                                    
            Next
            sumx = sum
        End If
    End Function
      

  4.   

    真诚的感谢各位的参与!shanshan这儿有礼了!
    上面三位老兄,请你们仔细看清楚一点,好吗?这道题目应该是:
       1-1/2+2/3-3/5+5/8-8/13……
    它的规律是:前两位数的分子之和是后一位数的分子,而前两位数的分母之和是后一位数的分母。
    而上面那位老兄做的却是:
       1-1/2+2/3-3/5+4/7-5/9……
    有何规律而言呢?恳请各位高手指教!多谢了!
      

  5.   

    dim fz1,fz2,fm1,fm2 as double
    fz1=1
    fz2=1
    fm1=1
    fm2=2
    for i=1 to 20
      sum=fz1/fm1-fz2/fm2+sum
      fz1=fz1+fz2
      fm1=fm1+fm2
      fz2=fz1+fz2
      fm2=fm1+fm2
    next
      

  6.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim t(1 To 30) As Long
        Dim i As Integer
        t(1) = 1
        t(2) = 1
        For i = 3 To 30
            t(i) = t(i - 1) + t(i - 2)
        Next i
        For i = 1 To 30
            Debug.Print t(i)
        Next i
        Dim sum As Double
        sum = 1
        For i = 1 To 20
            sum = sum + ((-1) ^ i) * (t(i + 1) / t(i + 2))
            Debug.Print "sum="; IIf(((-1) ^ i) > 0, "+", "-"); "("; t(i + 1); "/"; t(i + 2); ")"
        Next i
        Debug.Print sum
    End Sub
    ------------------
     1 
     1 
     2 
     3 
     5 
     8 
     13 
     21 
     34 
     55 
     89 
     144 
     233 
     377 
     610 
     987 
     1597 
     2584 
     4181 
     6765 
     10946 
     17711 
     28657 
     46368 
     75025 
     121393 
     196418 
     317811 
     514229 
     832040 
    sum=-( 1 / 2 )
    sum=+( 2 / 3 )
    sum=-( 3 / 5 )
    sum=+( 5 / 8 )
    sum=-( 8 / 13 )
    sum=+( 13 / 21 )
    sum=-( 21 / 34 )
    sum=+( 34 / 55 )
    sum=-( 55 / 89 )
    sum=+( 89 / 144 )
    sum=-( 144 / 233 )
    sum=+( 233 / 377 )
    sum=-( 377 / 610 )
    sum=+( 610 / 987 )
    sum=-( 987 / 1597 )
    sum=+( 1597 / 2584 )
    sum=-( 2584 / 4181 )
    sum=+( 4181 / 6765 )
    sum=-( 6765 / 10946 )
    sum=+( 10946 / 17711 )
     1.19595578513638