加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

我的Fibonacci子例程是Perl中递归的一个例子吗?

发布时间:2020-12-16 06:20:21 所属栏目:大数据 来源:网络整理
导读:众所周知,我们可以向Perl中的子例程发送任意数量的参数. 以下示例是否正确显示了递归以显示斐波纳契数列(5个值)? #!/usr/bin/perl -wuse strict;sub recursion{ if ($_[0] $_[2]) { print $_[2],"n"; if ($_[0] 5) { return recursion($_[0] + 1,$_[2],$_[
众所周知,我们可以向Perl中的子例程发送任意数量的参数.
以下示例是否正确显示了递归以显示斐波纳契数列(5个值)?

#!/usr/bin/perl -w

use strict;

sub recursion
{
  if ($_[0] && $_[2])
  {
    print $_[2],"n";
    if ($_[0] < 5)
    {
       return recursion($_[0] + 1,$_[2],$_[1] + $_[2]);
    }
    else
    {
       return $_[0];
    }
  }
  elsif ($_[0] && !$_[1] && !$_[2])
  {
    print "0n";
    return recursion($_[0],1);
  }
}
print "nFibo Series : n";
recursion(1);

print "nEnter to exit";
<>;

我知道这是一个蹩脚的例子……但我的目的是要知道这种类型的实现是否仍然有资格成为递归的一个例子?
希望没有砖块:)

编辑:

根据某些条件,如果程序决定只向自己发送一个参数或两个或多个参数……那么这是一个有效的特征吗?

解决方法

是.它是一个递归函数.它符合要求的条件

>应该有办法终止递归.在你的情况下,$_ [0]变为5>递归呼叫应该走向终止案件.您将$_ [0] 1传递给递归调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读