2015-10-15 2 views
0

возвращаемого значения функции Javascript рекурсия

Использования рекурсии возвращаемого значения этой функции. В функции допускается только один параметр. Также не допускаются глобальные переменные вне функции.

+0

есть у пытался что-нибудь? – grubjesic

+0

'function test (n, i) { if (n> 0) { return ((n/(1 + i)) + test (n-1, i + 1)); } else {return 0;} } ' это работает. buit я должен сделать это только с одним параметром –

ответ

0

с использованием кода с двумя параметрами, при условии, что это правильно, обмануть, как этот

function f(x) { 
    function inner(n, i) { 
     if (n>0) { 
      return ((n/(1 + i)) + inner(n-1, i+1)); 
     } 
     else { 
      return 0; 
     } 
    } 
    return inner(x); 
} 

или вы, конечно, можете это сделать

function test(o) { 
    if (typeof o == 'number') { 
     o = { i: 0, n: o }; 
    } 
    if (o.n > 0) { 
     return ((o.n/(1 + o.i)) + test({ n: o.n - 1, i: o.i + 1 })); 
    } else { 
     return 0; 
    } 
} 
+0

Я сделал аналогичную вещь, как и в первом примере. но когда функция вызывает себя рекурсивно, у нее все еще есть 2 параметра. Второй пример может работать, но я не уверен, могу ли я использовать объект в качестве параметра. –

+0

второй пример РАБОТАЕТ (протестировал его) - и да, вы ** можете использовать объект в качестве параметра, я думаю, вопрос в том, разрешено ли вам для теста –

+0

Да, это был вопрос. Спасибо за помощь, я попробую это, надеюсь, что я пройду. –

Смежные вопросы