sfnet.atk.ohjelmointi: vastauksista
Juha Takala
Juha.Takala at dna.fi
Tue Feb 16 16:16:25 CST 1999
Sami Poikonen writes:
>
>
> 2.1 viitenumero:
> Tarvitaan yleiskäyttöinen moduuli, joka
> a: tarkastaa annetun viitenumeron oikeeellisuuden
> b: muodostaa n-merkkiä pitkän viitenumeron annetulle luvulle x.
> c: tulostaa viitenumeron oikein ryhmiteltynä
> (d: tulostaa viitenumeron viivakoodina...)
Toteuttaa b ja c:
sub viitenum {
my $n = shift;
my ($i, $j) = (0,0);
for (reverse split //, $n) {
$j += $_ * (3,7,9)[$i++ % 3];
}
$j %= 10;
my $k = "$n$j";
1 while
$k =~ s/(\d)(\d{5}($| ))/$1 $2/;
"$k";
}
-juha
More information about the Helsinki-pm
mailing list