Mi primer script en Perl
May 12, 2007 8:34 pm ProgramaciónYa que no hay clases hasta el día miercoles :D, he estado mirando los retos de hckss (http://www.hackerss.com) y decidí resolver el del número PI: http://www.hackerss.com/desafios/vd/1/
El reto dice:
Jugango con PI
En qué consiste
Tenemos el numero PI (3.141592…..) y queremos buscar la primera secuencia de 10 números que sumándo cada uno de sus dígitos de 13.Por ejemplo las primeras tres secuencia::
3,1,4,1,5,9,2,6,5,3
1,4,1,5,9,2,6,5,3,5
4,1,5,9,2,6,5,3,5,8La primera de 39, la segunda da 41, etc.
Puedes
usar el método que mas se te acomode para calcularlo, la respuesta debe
estar como los ejemplos cada numero separado por comas ( , ) 3,1,4,1,5,9,2,6,5,3Ayuda (palabras claves)
Ingenio
Enviado por
Lo que hice para resolverlo fue obvio un script en perl, el primero que hago XD. El código es el siguiente:
#!/usr/bin/perl -W
#Autor: Soul Lost
#Descripcion: Encuentra la primera secuencia de 10 digitos de PI que sumen 13
$suma=0;
$cont=0;
open(DIGITOS,"pi.txt") or die("error, el archivo no se puede abrir");
while(<DIGITOS>){
chomp($_);
for(my $num = 0; $num < length($_); $num++){
$div = substr($_, $num, 1);
if($cont<10){
$suma = $suma + $div;
print $div," ";
$cont++;
}else{
$cont=0;
if($suma == 13){
print "Bingo!!
";
$r=<STDIN>;
if($r eq "ok
"){
next;
}
}
$suma=0;
print "
";
}
}
}
print "
";
close(DIGITOS);
La salida es algo asi:
soullost@UnderHouse ~/perl/examples $ perl pi.pl 2 6 4 3 3 8 3 2 7 9 5 0 2 8 8 4 1 9 7 1 6 9 3 9 9 3 7 5 1 0 5 8 2 0 9 7 4 9 4 4 5 9 2 3 0 7 8 1 6 4 0 6 2 8 6 2 0 8 9 9 8 6 2 8 0 3 4 8 2 5 3 4 2 1 1 7 0 6 7 9 8 2 1 4 8 0 8 6 5 1 3 2 8 2 3 0 6 6 4 7 0 9 3 8 4 4 6 0 9 5 5 0 5 8 2 2 3 1 7 2 5 3 5 9 4 0 8 1 2 8 4 8 1 1 1 7 4 5 0 2
Lógicamente el código no contiene una linea para su funcionamiento correcto
(pero funciona sin dar la respuesta correcta), por aquellos que les gusta hacer copy+paste
(igual se consigue por otro lado xD)…
El archivo que use de los digitos de PI fue este: http://www.geocities.com/tsrmath/pi/df/PI125MDP.ZIP
Cualquier duda/aclaracion/recomendación es bienvenida :D:P.
Nos vemos.
Saludos!!
Temas Relacionados:
