dim fz as long  '分子
dim fm as long   '分母
dim sum as long  '总和
dim i as integer
sum=0
fz=1
fm=1
function calit()
    for i=0 to 19
       sum=sum+(-1)^i*(fz/fm)
       fz=fm
       fm=fz+fm
    next
end function

解决方案 »

  1.   

    sorry ,定义时应该将其定义为单精度型
    Dim fz As Single    '分子
    Dim fm As Single    '分母
    Dim sum  As Single  '总和
      

  2.   

    再改点,刚才忘了返回值
    function calit()
        for i=0 to 19
           sum=sum+(-1)^i*(fz/fm)
           fz=fm
           fm=fz+fm
        next
        calit=sum
    end function
      

  3.   

    private sub sum()
    b=1
    c=1
    for i=0 to x   'x为项数
    j=b+c
    b=c
    c=j
    next i     最后是j值为分子值,分母同理
    end sub        
      

  4.   

    真诚的感谢各位的参与!shanshan这儿有礼了!
    这道题目应该是:
       1-1/2+2/3-3/5+5/8-8/13……
    它的规律是:前两位数的分子之和是后一位数的分子,而前两位数的分母之和是后一位数的分母。hengxin54(火星) 老兄编写的程序的运行结果确实是0.5,不过其规律倒是对的,不知是哪点出现的错误!可惜我水平太洼,看不出来,恳请各位高手指教,多谢了!
      

  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