VBA中的简单递归函数,Excel未返回预期结果
我有一个简单的递归函数,可以在VBA中编写,它执行以下操作:它必须计算我们必须获取参数“x”的日志以查找日志(x)<1的次数 示例:VBA中的简单递归函数,Excel未返回预期结果,excel,vba,recursion,Excel,Vba,Recursion,我有一个简单的递归函数,可以在VBA中编写,它执行以下操作:它必须计算我们必须获取参数“x”的日志以查找日志(x)
- 日志计数(5):日志(5)=0,6。。。所以函数应该返回1
- 对数计数(89):对数(89)=1,9。。。和log(log(89))=0,28。。。所以函数应该返回2
- 日志计数(0,4)应返回1 等等
Function logcount(x As Double) As Integer
If x <= 0 Then
MsgBox "You must enter a positive value"
Exit Function
ElseIf Log(x) < 1 Then
logcount = 1
Else
logcount = 1 + logcount(Log(x))
End If
End Function
函数logcount(x为双精度)为整数
如果x是自然对数
很明显,你指的是以10为底的对数:
Log10 = Log(X) / Log(10#)
是自然对数
很明显,你指的是以10为底的对数:
Log10 = Log(X) / Log(10#)
什么是logcount(0,4)
您的函数只接受一个参数。同样是写入的logcount(1)
和logcount(2)
都返回1@ConradFrix0,4
是0.4
用非英语的美国语言编写的(通过问题使用),小数点是,
。对不起,在法国我们用逗号作为小数点分隔符,您应该读“0.4”@yast no我的道歉。事实上,我知道得更清楚了,我仍然被我以英美为中心的十进制标记的观点吸引住了什么是logcount(0,4)
你的函数只接受一个参数。同样是写入的logcount(1)
和logcount(2)
都返回1@ConradFrix0,4
是0.4
用非英语的美国语言编写的(通过问题使用),小数点是,
。对不起,在法国我们用逗号作为小数点分隔符,您应该读“0.4”@yast no我的道歉。事实上,我知道的更多,我仍然被我以英美为中心的十进制马克的观点所吸引!事实上,我正在使用windows calc中的日志检查我的结果!用这个计算,我们得到了10进制对数,对吗?如果我想要自然日志,我的程序是正确的?天哪!事实上,我正在使用windows calc中的日志检查我的结果!用这个计算,我们得到了10进制对数,对吗?如果我想要自然日志,我的程序是正确的?