foreach my $i ($#$arr)
{
$avg = ($i + ($avg ? $avg : $i)) / 2;
}
####
$avg = (...(($arr->[0]/2 + $arr->[1])/2 + $arr->[2])/2 + ... $arr->[$#$arr])/2;
##
##
my @x = (10, 7, 5, 10, 50, 70, 75, 72, 79, 80);
sub avg {
my @arr = @_;
my $avg;
foreach my $i (@arr) {
print "$i: $avg\n";
$avg = ($i + ($avg ? $avg : $i))/2;
}
return $avg;
}
print avg(@x),"\n";
10: # undef
7: 10
5: 8.5
10: 6.75
50: 8.375
70: 29.1875
75: 49.59375
72: 62.296875
79: 67.1484375
80: 73.07421875
76.537109375
print avg(reverse @x),"\n";
80: # undef
79: 80
72: 79.5
75: 75.75
70: 75.375
50: 72.6875
10: 61.34375
5: 35.671875
7: 20.3359375
10: 13.66796875
11.833984375
##
##
my @x = (10, 7, 5, 10, 50, 70, 75, 72, 79, 80);
sub avg2 {
my @arr = @_;
my $sum;
foreach my $i (@arr) {
print "$i: $sum\n";
$sum += $i;
}
return $sum/@arr;
}
print avg(@x),"\n";
10: # undef
7: 10
5: 17
10: 22
50: 32
70: 82
75: 152
72: 227
79: 299
80: 378
45.8
print avg(reverse @x),"\n";
80: # undef
79: 80
72: 159
75: 231
70: 306
50: 376
10: 426
5: 436
7: 441
10: 448
45.8