作者: Tsutomu Hiroshima
日時: 2003/10/21(15:02)
廣島です.

  my $num = 0;

を,
  
  my $num = shift @seq;

にすれば,空計算 0 * 26 を 1 つ減らせます.

sub labelConv {
  my $label = shift;
  my $base = ord('A') - 1;
  my @seq = map { ord($_) - $base} split(//, uc $label);
  my $num = shift @seq;
  foreach my $x (@seq) {
    $num = $num * 26 + $x;
  }
  return $num;
}

ちなみに,多項式計算のアルゴリズム

a*x^3 + b*x^2 + c*x + d = (((a*x + b)*x + c)*x + d

は Scheme か Common Lisp の入門書で読みました.
-----------------------------
	廣島 勉
	(tsutomu@...)