小编fra*_*724的帖子

Perl中的子例程递归

编辑:我很高兴没有人花时间指出第6行和第7行中的实际文本具有与其各自函数调用的输入不同的数字.最终我将为这两个数字(724和27)做这件事,但为了排除故障,我选择了数量更小的数字.所以,如果有人想知道,那就是为什么......

所以,我一直在学习Perl,而且对于一般的编程来说相对较新.我的主管有一套练习让我通过.当前的一个处理Hailstone序列,她希望我编写一个子程序来打印给定数字的序列.

我遇到的问题是,无论我尝试过什么,如果我不止一次调用该函数,它将产生我调用函数的第一个数字的序列,但第二次调用函数,它产生第一个调用的序列,然后是第二个调用的序列.所以,这段代码:

#!usr/bin/perl

use strict;
use warnings; 

print "\nThe hailstone sequence for 724 is:\n" . &hail(8) . "\n\n";
print "The hailstone sequence for 27 is:\n" . &hail(16) . "\n\n";

my $n;
my @seq;
sub hail {
    no warnings 'recursion';
    $n = $_[0];
    if ($n > 1) {
            push @seq, $n;
            if ($n % 2 == 0) {
                    $n = $n/2;
            } else {
                    $n = (3 * $n) + 1;
            }
            &hail($n);
    } else {
            push @seq, $n; …
Run Code Online (Sandbox Code Playgroud)

arrays perl subroutine

7
推荐指数
2
解决办法
367
查看次数

标签 统计

arrays ×1

perl ×1

subroutine ×1