2014-11-27 3 views
0

Эта функция Scilab предназначена для вычисления факториала n. Но это дает указано ниже ошибка:Вычисление факториала в SciLab

function fac(n) 
    if (n<=0) then n = 1 
    else 
     n = n* fac(n-1)  
    end 
endfunction 

Ошибки указаны здесь:

-->fac(23) 

!--error 44 
Wrong argument #2. 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
at line  5 of function fac called by : 
fac(23) 
+0

Вы пытались вывести значение '' n '' каждый раз, когда вы вызываете fac. Каков результат? – marc

ответ

1

Вы забыли возвращаемое значение n = в самой первой строке сразу после function, он никогда ничего не вернется иначе

function n = fac(n) 

    if (n<=0) then n = 1 
    else 
     n = n* fac(n-1) 
    end 

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