高阶-Perl-Notes

第一章 递归与回调

1.1 十进制到二进制的转换

主要思想, 任何数都可以写成 2k + b 的形式, 其中 k 是一个更小的整数, b 是 0 或 1, 示例: 37 的展开式:

  1. 37 是奇数, 可以写为 $2 \times 18 + 1$, 因此末位为 1
  2. 18 是偶数, 可以写为 $2 \times 9$, 因此末位为 0
  3. 9 是奇数, 可以写为 $2 \times 4 + 1$, 因此末位为 1
  4. 4 是偶数, 可以写为 $2 \times 2$, 因此末位为 0
  5. 2 是偶数, 可以写为 $2 \times 1$, 因此末位为 0
  6. 1 是奇数, 可以写为 $2 \times 0 + 1$, 因此末位为 1

最终就写为 100101. (最开始写下的就是最后一位)

最终代码

1
2
3
4
5
6
7
8
9
sub binary {
my ($n) = @_;
return $n if $n == 0 || $n == 1;

my $k = int($n/2);
my $b = $n % 2;
my $E = binary($k);
return $E . $b;
}

递归最重要的就是结束条件.

1.2 阶乘


高阶-Perl-Notes
http://example.com/2023/02/15/高阶-Perl-Notes/
作者
Jie
发布于
2023年2月15日
许可协议