VB程序,递归法求1+1/2+1/3+1/4+……+1/[f(x-1)+f(x-2)]
来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/05/01 21:03:15
VB程序,递归法求1+1/2+1/3+1/4+……+1/[f(x-1)+f(x-2)]
Public Function f(x) As Long
Dim t As Integer
If x = 1 Then
t = 1
ElseIf x = 2 Then
t = 0.5
ElseIf x >= 3 Then
t = t + (f(x - 1)) ^ -1 + (f(x - 2)) ^ -1 + 0.5 + 1
End If
f = t
End Function
Private Sub Form_Click()
Label1.Caption = f(Val(Text1.Text))
End Sub
为什么当x=2时函数等于0,为什么当x=3时程序出错!
额……应该是1+1/2+1/3+1/5+1/8…………
Public Function f(x) As Long
Dim t As Integer
If x = 1 Then
t = 1
ElseIf x = 2 Then
t = 0.5
ElseIf x >= 3 Then
t = t + (f(x - 1)) ^ -1 + (f(x - 2)) ^ -1 + 0.5 + 1
End If
f = t
End Function
Private Sub Form_Click()
Label1.Caption = f(Val(Text1.Text))
End Sub
为什么当x=2时函数等于0,为什么当x=3时程序出错!
额……应该是1+1/2+1/3+1/5+1/8…………
第一个问题:为什么当X=2时函数等于0呢.因为在f(x)函数中你的t的类型为整形,它不能接收浮点数(即带小数点的数据),如果是浮点数,则它会将该数截尾取整,即舍去小数点后的数据.因此当X=2时,函数返回值为0.
第二个问题,当X=3时,调用f(x)函数,传递实参x=3,在函数中执行x>=3中的语句,但因其中有递归调用,x-1=2,再次调用f(x)函数传递实参2,此时会执行x=2中的语句,t=0(舍掉小数点后的数据),此时f=t=0,执行完毕后,返回到调用处f(x-1)^-1,等价于0^-1(零的负一次方无意义),因此会出错.
第二个问题,当X=3时,调用f(x)函数,传递实参x=3,在函数中执行x>=3中的语句,但因其中有递归调用,x-1=2,再次调用f(x)函数传递实参2,此时会执行x=2中的语句,t=0(舍掉小数点后的数据),此时f=t=0,执行完毕后,返回到调用处f(x-1)^-1,等价于0^-1(零的负一次方无意义),因此会出错.
VB程序,递归法求1+1/2+1/3+1/4+……+1/[f(x-1)+f(x-2)]
递归数列求极限递归数列形式:an+1 =f(an) 第一步,设y=f(x),即将an+1 换成y,f(an)换成f(x)
F(X)满足F(x)+2f(x分之1)=3X,求f(x)
已知f(x)满足2f(x)+f(1/x)=3x,求f(x)
已知f(x)满足2f(x)+f(1/x)=3x,求f(x)?
已知f(x)满足2f(x)+f(-x)=-3x+1,求f(x)
=已知函数f(x)=3x-1,求f[f(2)]的值,设计一个程序
求公式的递归函数f(x,n)=x-x^2+x^3-x^4+···+(-1)^(n-1)*x^n只是整数范围的运算而已~可
C语言填充程序 对x=1,2,3……,10,求f(x)=x*x-5*x+sin(x)的最大值
12、程序功能是:对x=1,2,3,……10,求f(x)=x*x-5*x+con(x)的最小值.
1.已知,f(x)=x^2/(1+x^2),求f(1)+f(1/2)+f(3)+f(1/3)+……+f(n)+f(1/n
设函数f(x)满足f(x)+2f(1/x)=x,求f(x)