matlab 函数求解N阶乘

函数定义如下:
function my_fact(n)
%用递归求N的阶乘。
if nargin~=1,error('wrong input.');end
if nargout>1,error('wrong output.');end
if abs(n-floor(n))>eps|n<0
error('n 应该为非负整数');
end
if n>1
k=n*my_fact(n-1);
elseif any([0 1]==n)
k=1;
end,end
求解时出现如下错误,求高人指点
my_fact(11)
??? Error using ==> my_fact
Too many output arguments.

Error in ==> my_fact at 9
k=n*my_fact(n-1);

function k=my_fact(n)
%用递归求N的阶乘。
if nargin~=1
error('wrong input.');
end
if nargout>1
error('wrong output.');
end
if abs(n-floor(n))>eps|| n<0
error('n 应该为非负整数');
end
if n>1
k=n*my_fact(n-1);
elseif any([0 1]==n)
k=1;
end

你的函数没有输出值!
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-12-14
第一句话写错了,function函数的格式不对
应该改为:function k=my_fact(n)
if nargin~=1,error;end
if nargout>1,error;end
if abs(n-floor(n))>eps|n<0,error;end
if n>1,k=n*my_fact(n-1);
elseif any([0 1]==n),k=1;
end
相似回答