Я сейчас делаю программу 2 для запуска инженерного курса, предлагаемого на Courseraреализация Coursera Node.js Фибоначчи висят
Я программирование с использованием и экземпляр убунта с помощью веб-сервисов Amazon и мое программирование постоянно висит. Возможно, что-то не так с моей программой node.js, но я не могу найти его.
Эта программа предназначена для создания первых 100 чисел Фибоначчи, разделенных запятыми.
#! /usr/bin/env node
//calculation
var fibonacci = function(n){
if(n < 1){return 0;}
else if(n == 1 || n == 2){return 1;}
else if(n > 2){return fibonacci(n - 1) + fibonacci(n-2);}
};
//put in array
var firstkfib = function(k){
var i;
var arr = [];
for(i = 1; i <= k; i++){
arr.push(fibonacci(i));
}
return arr
};
//print
var format = function(arr){
return arr.join(",");
};
var k = 100;
console.log("firstkfib(" + k +")");
console.log(format(firstkfib(k)));
Единственный выход я получаю
[email protected]:~$ node fib.js
firstkfib(100)
, а затем программа зависает
Программа не висит .. Ваша петля только постепенно прогрессирует –
Сколько времени она висит? Я считаю, что у этого стиля Фибоначчи есть O (n^2). Итак, для всего лишь фига 100, он выполнит 10000 прогонов через этот цикл. Для 99 он будет близок к 10000 и так далее. – asafreedman