Fibonacci sequence: Difference between revisions

Content added Content deleted
m (Tweaked implementation for readability)
m (Added require statement)
Line 10,946: Line 10,946:
This solution works for negative numbers
This solution works for negative numbers
<syntaxhighlight lang="scala">
<syntaxhighlight lang="scala">
func pfib(n: Integer): Integer {
// Calculate nth positive fibonacci number
require n >= 0;
func pFib(n: Integer): Integer {

var lastFib = -1;
var lastFib = -1;
var fib = 1;
var fib = 1;
Line 10,958: Line 10,959:
}
}


// Calculate nth integer fibonacci number
func fib(n: Integer): Integer {
func fib(n: Integer): Integer {
match ([n < 0, n.mod(2)]){
match ([n < 0, n.mod(2)]){
[true, 0]: return -pFib(-n);
[true, 0]: return -pfib(-n);
[true, _]: return pFib(-n);
[true, _]: return pfib(-n);
else: return pFib( n);
else: return pfib( n);
}
}
}
}