Forum Webscript.Ru
Программирование => Perl => Тема начата: ucG от 05 Января 2002, 22:29:44
-
...есть массив @array=(4,8,12,16) т.е. цифры в нем идут на повышение с интервалом 4...
Как мне сдлеать так, чтобы если например переменная $all=6
то из массива бралось число которое больше 6, т.е. в нашем примере это 8 ? ну и вычиталось: 8 - $all
т.е. конечный результат должен быть в виде переменной $some = \'8\' - $all
подскажите как такое реализовать....
заранее спасибо!
-
например так:
my $all=6;
my @array=(4,8,12,16) ;
my @new= sort {$a<=>$b} grep($_>$all, @array);
print $new[0]-$all;
-
а можно и так:
my $all=6;
my @array=(4,8,12,16) ;
my $number;
foreach my $num(@array){
if ($num>$all){
$number=$num;
last;
}
}
print $number-$all;
если нужно то можно задать сортировку по возрастанию
-
Hi.
Ребят, я не понимаю зачем такие сложности?
$x = 6; #Ваше число
$k = 4; #Кратность
print $s = (int($x/$k)+1)*$k,"\\n"; #Элемент массива кратный $k и больше $x
print $s-$x; #Ваш результат
-
Всем огромное спасибо!