matlab怎样实现函数的递归调用?如以下程序:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab怎样实现函数的递归调用?如以下程序:相关的知识,希望对你有一定的参考价值。
function s=mysum(n) if n==1 s=1; else s=n+mysum(n-1); end clear; clc; s=mysum(5)
参考技术A 程序可以写成12345678910function zdclear;clc;s=mysum(5) function s=mysum(n)if n==1 s=1;else s=n+mysum(n-1);end
保存到一个文件,然后运行即可得到结果15。
[VB]是不是可以在函数中调用自己?
VB 例如一个用户函数f:
public function f(x as single) as single
...
a = f(a) <--是否能在这里调用f本身?
...
end function
我记得好象不可以,会出错;但这个操作好象是叫"迭代"吧?(记不清了) 如果实现将很好用,该怎样实现呢?
只有一楼正经
234楼都什么菜鸟
但小心,调用自己有可能造成无限循环,所以在过程\函数中要有跳出的语句 参考技术B VB完全可以使用递归算法,在函数体f内可以出现函数f本身,以下求阶乘的程序在VB6通过
Public Function f(x As Integer) As Integer
If x = 1 Then
f = 1
Else
f = x * f(x - 1)
End If
End Function
Private Sub Command1_Click()
MsgBox f(5)
End Sub
如果把f = x * f(x - 1)改成f = x * f(x)或f = x * f(x + 1),明显不合理,但是VB也会通过,但是执行的时候会产生堆栈溢出的错误 参考技术C 楼主提到的这种调用方式叫做递归。
vb不熟悉,不过在大多数现代编程语言中,都可以使用递归调用。可以用来简单的解决某些特殊的问题,比如计算阶乘。但是递归层数太高时,效率会明显降低,因为要用到大量的堆栈操作。 参考技术D 可以使用,您大约记错了。
public function f(x as single) as single
...
if a = 1 then
f = 2
else
f = 0
end if
a = f(a) <--这样a就得2了
...
end function本回答被提问者采纳 第5个回答 2005-10-02 我认为可以,因为万事皆有可能
以上是关于matlab怎样实现函数的递归调用?如以下程序:的主要内容,如果未能解决你的问题,请参考以下文章