k3cさんのコード...間違ってました aa 26ab 52ac 78 じゃなくて aa 26ab 27ac 28
449755 journal bravoの日記: やっぱりちがうな 2 日記 by bravo 2003年10月29日 18時27分 k3cさんのコード...間違ってましたaa 26ab 52ac 78じゃなくてaa 26ab 27ac 28になってくれなひといかんのだ。
手元では (スコア:1)
$ cat rowtonum2.pl
#!/usr/bin/perl -w
sub rowtonum2($) {
my $row = lc( shift @_ );
my $base = ord( "a" ) - 1;
my $interval = ord( "z" ) - $base;
my $num = 0;
foreach my $c ( split( //, $row ) ) {
$num *= $interval;
$num += ord( $c ) - $base;
}
return --$num;
}
print "aa=" . rowtonum2('aa') . "\n";
print "ab=" . rowtonum2('ab') . "\n";
print "ac=" . rowtonum2('ac') . "\n";
$ ./rowtonum2.pl
aa=26
ab=27
ac=28
なんとなく、
$num += ord( $c ) - $base;
が
$num *= ord( $c ) - $base;
となっていそうなヨカーン。
Re:手元では (スコア:1)
foreach my $c (reverse(split //, $row )) {
$num *= $interval;
$num += ord( $c ) - $base;
}
return --$num;
なんでreverseが入ってたんだ(--; 早とちりすまんです。