VB程序,递归法求1+1/2+1/3+1/4+……+1/[f(x-1)+f(x-2)]Public Function f(x) As LongDim t As IntegerIf x = 1 Thent = 1ElseIf x = 2 Thent = 0.5ElseIf x >= 3 Thent = t + (f(x - 1)) ^ -1 + (f(x - 2)) ^ -1 + 0.5 + 1End Iff = tEnd FunctionPrivate Sub F

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 12:59:33

VB程序,递归法求1+1/2+1/3+1/4+……+1/[f(x-1)+f(x-2)]Public Function f(x) As LongDim t As IntegerIf x = 1 Thent = 1ElseIf x = 2 Thent = 0.5ElseIf x >= 3 Thent = t + (f(x - 1)) ^ -1 + (f(x - 2)) ^ -1 + 0.5 + 1End Iff = tEnd FunctionPrivate Sub F
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…………

VB程序,递归法求1+1/2+1/3+1/4+……+1/[f(x-1)+f(x-2)]Public Function f(x) As LongDim t As IntegerIf x = 1 Thent = 1ElseIf x = 2 Thent = 0.5ElseIf x >= 3 Thent = t + (f(x - 1)) ^ -1 + (f(x - 2)) ^ -1 + 0.5 + 1End Iff = tEnd FunctionPrivate Sub F
第一个问题:为什么当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=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...

全部展开

第一个问题:为什么当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(零的负一次方无意义),因此会出错。

收起

vb编程 用递归函数求数列1,1,2,3,5,8,13,21.的第N项RT VB:斐波那契数列第一项是1,第二项是1,用递归算法编写一个程序,求数列前N项的和 用递归法写出1+2+3+...+100的程序(c语言) 请问用递归法怎样写VB语句?还有 VB中的递归法是怎样的?Fibonacci数列的第一项和第二项为1,以后各项均是前两项的和,请用递归算法编写一程序,求出该数列的前N项. 用VB.net编写一个递归函数过程来求F(N)=1^2+2^2+3^2+.+n^2,然后调用该过程进行验证 计算1!+2!+.+n!用C语言程序中的递归法怎么写呢? VB编程:编递归函数过程,计算1+2+3……..+n的值(n是自然数) 用VB编写程序.计算1+2+3+.+100 编写一个程序,利用递归函数求斐波那契数列(0,1,1,2,3,5,8,13,21…… )前100项的和用递归函数求,C++题目.谢谢! 用递归函数(C语言)求1!+2!+3!+...+n! vb用递归法求Fibonacci数列的第20、200项Fibonacci数列前2项均为1,满足公式f(n)=f(n-1)+f(n-2),其中n>3 VB程序,递归法求1+1/2+1/3+1/4+……+1/[f(x-1)+f(x-2)]Public Function f(x) As LongDim t As IntegerIf x = 1 Thent = 1ElseIf x = 2 Thent = 0.5ElseIf x >= 3 Thent = t + (f(x - 1)) ^ -1 + (f(x - 2)) ^ -1 + 0.5 + 1End Iff = tEnd FunctionPrivate Sub F 求matlab中符号函数的递归运算,给程序!s(t+1)=m*n+3*m*s(t)+n^s(t)m ,n为符号,已知s(1)=m^2求s(100)给出递归调用函数求s(100)或者给出递归调用函数 vb求Fibonacci数列斐波纳契(Fibonacci)数列的第一项是1,第二项是1,以后各项都是前两项的和.试用递归算法和非递归算法各编写一个程序,求斐波纳契数列第N项的值. c++ 求1^2+2^2+3^2+4^2+n^2 用 递归法求 用C语言编写一个递归程序用来计算:1*2+2*3+3*4+...+(n-1)*n c语言:用递归方法编写程序,求n阶勒让德多项式的值用递归方法编写程序,求n阶勒让德多项式的值,递归公式为1 (n=0)pn(x)=x (n=1)((2n-1)xpn-1(x)-(n-1)pn-2(x))/n (n>1) 求s=1-1/2+1/3-1/4+..+1/99-1/100的值 用vb程序编写