• 0
Sign in to follow this  
Roffs d'Grain

Sequencia de Fibonacci em Perl

Question

Oi galera, beleza?

Para um teste em um emprego me foi pedido para:

Criar um programa em Perl que receba 1 parâmetro numérico e devolva a sequencia de Fibonacci com quantidade de eventos informado no parâmetro.

Por exemplo: parâmetro = 10

O programa devolve x x x x x x x x x x eventos

O que eu desenvolvi foi:

#!/usr/bin/perl  
    use 5.010;  
    use strict;  
    use warnings;  
    my $a = 1;   
    my $b = 0;   
    print "Digite o parametro numerico para indicar o tamanho da sequencia de Fibonacci\n";  
    my $numX = <STDIN>;  
    for(my $i=0;$i<$numX;$i++){  
          
        $b += $a;  
        $a = $b - $a;  
        print $b." ";  
          
    }

Como não sou um programador Perl e também não tenho muita familiaridade com a sequencia de fibonacci, gostaria da opinião do pessoal, para saber se está tudo certinho e em que eu poderia melhorar o código.

Toda e qualquer dica é bem vinda!! :)

Edited by Roffs d'Grain

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

exemplos

#!/usr/bin/perl
use warnings;
use strict;

$a = 0;
$b = 1;
print "$a\n$b\n";

for(1..10)
{
        ($a,$b) = ($b,$a+$b);
        print "$b\n";
}
======================================
#!/usr/bin/perl
use strict;

my $n = shift;
my ($a,$b)=(1,2);

print "$a\n$b\n";

for(1..$n-2) 
{  ($a,$b) = ($b,$a+$b);  
print "$b\n"}

basta fazer as alterações necessarias

abraço

Share this post


Link to post
Share on other sites
  • 0

Hi.

Tenho um que fiz há algum tempo que implementa um cachezinho numa hashref estática.

Não é nada mas fica muito mais rápido que a implementação comum:

use strict;
use warnings;
use feature qw(say state);

sub fib {
    state $m = {
        1 => 1,
        2 => 1,
    };
    return $m->{$_[0]} //= fib($_[0] - 1) + fib($_[0] - 2);
}

say fib 45;

[]'s

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this