|
楼主 |
发表于 2013-12-13 11:21:32
|
显示全部楼层
回复 3# chanshi634
写了一下:能出来结果,但是数组里面会有重复的数字,请大家看看:
#!/usr/bin/perl -w
@array = qw(2 3 4 5 7 9 11 13 14 29 30 32 33 34 35 37 39 41 42 49);
my(@array_interval, @array_adjacenct, %hash);
my $i_array = 0;
for ($i = 0; $i < $#array; $i++) {
if ($array[$i+1] - $array[$i] > 1) {
push (@array_interval, $array[$i]) if ($array[$i] -$array[$i-1] > 1);
} elsif ($arrar[$i+1] - $array[$i] == 1) {
if ($i_array > 0) {
if (($array[$i] -$array[$i-1]) == 1) {
$array_adjacent[$i_array] = $array_adjacent[$i_array] . "*" . "$array[$i]" . "/" . "$array[$i+1]";
$i_array++ if (($array[$i+2] - $array[$i+1]) > 1);
} else {
$array_adjacent[$i_array] = "$array[$i]" . "/" . "$array[$i+1]";
$i_array++ if (($array[$i+2] - $array[$i+1]) > 1);
}
} else {
$array_adjacent[$i_array] = "$array_adjacent[$i_array]" . "*" . "$array[$i]" . "/" . "$array[$i+1]";
$i_array++ if (($array[$i+2] - $array[$i+1]) > 1);
}
} else {print STDERR "Error found!"; }
}
print .... |
|