Fibonacci problem
From: Brett Trost (btrost_at_shaw.ca)
Date: 01/22/04
- Next message: Mark Creelman: ""Simple Database Program" help!"
- Previous message: Jürgen Exner: "Re: newbie: unusual email output"
- Next in thread: Jürgen Exner: "Re: Fibonacci problem"
- Reply: Jürgen Exner: "Re: Fibonacci problem"
- Reply: lesley_b_linux_at_yahoo.co.yuk: "Re: Fibonacci problem"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: 21 Jan 2004 19:22:06 -0800
OK, I wanted to make a recursive fibonacci method in Perl, and I can't
understand why it is not working, especially since I wrote the exact
same thing in Java and it works. Here's the perl code:
#!/usr/bin/perl
sub fib {
$num = shift;
return 0 if $num == 1;
return 1 if $num == 2;
return fib($num - 1) + fib($num - 2);
}
print fib($ARGV[0]);
And here's the Java code:
class fib
{
public static void main(String[] args)
{
System.out.println(fib(Integer.parseInt(args[0])));
}
static int fib(int x) {
if (x == 1) return 0;
if (x == 2) return 1;
return fib(x - 1) + fib(x - 2);
}
}
The perl one keeps on running forever. If I print out $num, it goes
rapidly into the negatives. Why is this, when the base case should
take care of that, and the Java code has the exact same logic and
works?! It must be an error with my Perl, but I can't find it.
Thanks for any help.
- Next message: Mark Creelman: ""Simple Database Program" help!"
- Previous message: Jürgen Exner: "Re: newbie: unusual email output"
- Next in thread: Jürgen Exner: "Re: Fibonacci problem"
- Reply: Jürgen Exner: "Re: Fibonacci problem"
- Reply: lesley_b_linux_at_yahoo.co.yuk: "Re: Fibonacci problem"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|