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

前端之家收集整理的这篇文章主要介绍了我的Fibonacci子例程是Perl中递归的一个例子吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
众所周知,我们可以向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 "0\n";
    return recursion($_[0],1);
  }
}
print "\nFibo Series : \n";
recursion(1);

print "\nEnter to exit";
<>;

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

编辑:

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

解决方法

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

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

猜你在找的Perl相关文章