Perl数组循环处理:如何生成1到10的累加前缀和序列?
代码修改方案
你原代码的循环逻辑是对每个元素单独做平方计算,没有关联前序元素的计算结果,所以得到的是平方值序列。修改后的完整代码如下:
#!/usr/bin/perl use warnings; use strict; my @b = (1..10); my $prefix_sum = 0; for (@b) { $prefix_sum += $_; $_ = $prefix_sum; } print ("The total is: @b\n");
运行后输出结果为:
The total is: 1 3 6 10 15 21 28 36 45 55
修改逻辑说明
- 新增临时变量
$prefix_sum存储累加值,初始赋值为0 - 遍历数组时,先将当前元素值累加到
$prefix_sum上 - 再将当前元素替换为
$prefix_sum的最新值,遍历完成后数组内就是符合要求的前缀和序列
内容的提问来源于stack exchange,提问作者JasonK
相关产品推荐
相关产品推荐

