暫定サイト: Arts Collection(旧kzhr's arts) >> [perl]

暫定目次


最大数を求めるメソッド

phpのmax関数を見ていて、perlで実現したらどうなるだろうと考えてみました。そして実装してみた結果がこれです。

@ns = qw(1 23 4 24 1330 540);

$a = shift(@ns);
$n = $#ns;
for($i = 0;$i <= $n;$i++){
  if($a == $ns[0] or $a > $ns[0]){
    shift(@ns);
  }else{
    $a = shift(@ns);
  }
}

これをサブルーチンにすると、

sub max{
  my @ns = @_;
  my $n = $#ns;
  my $a = shift(@ns);
  for(my $i = 0;$i <= $n;$i++){
    if($a == $ns[0] or $a > $ns[0]){
      shift(@ns);
    }else{
      $a = shift(@ns);
    }
  }
  return $a;
}

となります。

@nsをsortして取り出せば一発ではと言うのは無しにして下さい

Copyright © kaz all right reserved.