Problem:

Print Fibonacci series till N numbers.

Sample Input:

5

Sample Output:

First 5 elements of Fibonacci series are: 1 1 2 3 5

Solution:

my $a = 1;

my $b = 0;

my $c = 0;

print "Enter the number of elements you want in fibonaaci series\n";

my $num = <STDIN>;

chomp($num);

print "First $num elements of fibonacci series : ";

for (my $i=1; $i <= $num; $i++)

{

$c = $a + $b;

print "$c ";

$a = $b;

$b = $c;

}

Tips:

Print Fibonacci series till N numbers.

Sample Input:

5

Sample Output:

First 5 elements of Fibonacci series are: 1 1 2 3 5

Solution:

my $a = 1;

my $b = 0;

my $c = 0;

print "Enter the number of elements you want in fibonaaci series\n";

my $num = <STDIN>;

chomp($num);

print "First $num elements of fibonacci series : ";

for (my $i=1; $i <= $num; $i++)

{

$c = $a + $b;

print "$c ";

$a = $b;

$b = $c;

}

Tips:

- print "$c ", here a space character is used to print all elements in 1 line and separated by a space.

sub fibonacci {

ReplyDeletemy $n = shift;

return undef if $n < 0;

return 0 if $n == 0;

return 1 if $n == 1;

return fibonacci($n-1) + fibonacci($n-2);

}

print "Enter the number of elements you want in fibonaaci series: ";

chomp(my $num = );

print "First $num elements of fibonacci series : ";

print join ' ', map { fibonacci($_) } 0 .. $num;

print "\n";

@Dave Cross: your solution gives result 0 1 1 2 3 5 for num=5

Deleteanother method :

ReplyDelete#!/usr/bin/perl -w

use strict;

print "Please enter N for fibonicci series:";

my $input = ;

my @string = qw(1);

my $fib = "0";

for(my $i=0;$i<$input-1;$i++)

{

$fib = $fib+$string[$i-1];

push(@string,$fib);

}

chomp (@string);

print "@string\n";

@Santosh: Good, but for 0, your solution will give 1

Delete