nerd
nerd copied to clipboard
Recursion broken (fibo.js)?
Recursion broken (fibo.js)?
var console = require("console");
var fibonacci = function(n)
{
if (n < 2)
{
return n;
}
return fibonacci(n - 2) + fibonacci(n - 1);
};
console.log(fibonacci(1));
RESULT:
node ../nerd --run fibo.ng
[*] Generating source file
[*] Compiling with preset: speed
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
[*] Executing /root/Downloads/nerd-master/example/fibo
1
var console = require("console");
var fibonacci = function(n)
{
if (n < 2)
{
return n;
}
return fibonacci(n - 2) + fibonacci(n - 1);
};
console.log(fibonacci(44));
RESULT:
node ../nerd --run fibo.ng
[*] Generating source file
[*] Compiling with preset: speed
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
[*] Executing /root/Downloads/nerd-master/example/fibo
0
Lowest denominator:
var console = require("console");
var fibonacci = function(n)
{
if (n < 2)
{
return n;
}
return fibonacci(n - 2) + fibonacci(n - 1);
};
console.log(fibonacci(3));
node ../nerd --run fibo.ng
[*] Generating source file
[*] Compiling with preset: speed
lto-wrapper: warning: using serial compilation of 2 LTRANS jobs
[*] Executing /root/Downloads/nerd-master/example/fibo
0
No it's not about just recursion, but something about the addition and recursion.
OTOH, e.g. the following version works:
var console = require("console");
var fibonacci = function (num) {
var num1 = 0;
var num2 = 1;
var sum;
var i = 0;
for (i = 0; i < num; i++) {
sum = num1 + num2;
num1 = num2;
num2 = sum;
}
return num2;
}
console.log("Fibonacci(5): " + fibonacci(5));
console.log("Fibonacci(8): " + fibonacci(8));
The original fibo.ng works with node only:
node fibo.ng
so it's certainly a nerd issue.