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
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
Dim fz As Single '分子
Dim fm As Single '分母
Dim sum As Single '总和
function calit()
for i=0 to 19
sum=sum+(-1)^i*(fz/fm)
fz=fm
fm=fz+fm
next
calit=sum
end function
b=1
c=1
for i=0 to x 'x为项数
j=b+c
b=c
c=j
next i 最后是j值为分子值,分母同理
end sub
这道题目应该是:
1-1/2+2/3-3/5+5/8-8/13……
它的规律是:前两位数的分子之和是后一位数的分子,而前两位数的分母之和是后一位数的分母。hengxin54(火星) 老兄编写的程序的运行结果确实是0.5,不过其规律倒是对的,不知是哪点出现的错误!可惜我水平太洼,看不出来,恳请各位高手指教,多谢了!
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
只适用于偶数项个数
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