0x00 Accumulator 1(推荐)
%
disp(Accumulator(100));
%
function [Results]=Accumulator(n)
if n ~= 0
Results=Accumulator(n-1)+n;
else
Results=0;
end
end
0x01 Accumulator 2(不推荐)
%
function [Sum]=Accumulator(min,max,Sum)
%
if min<=max
%
Sum=Sum+min;
%
min=min+1;
%
Accumulator(min,max,Sum);
else
%
global Value;
%
Value=Sum;
%
return;
end
end
0x02 Main
%
Accumulator(1,100,0);
%
global Value;
%
disp(Value);
0x03 Run
>> test
5050
0x04 Value
- 在MATLAB中,当程序调用函数时,函数的【执行位置】只要首次脱离【该函数的领空】,此函数则立即返回,不会等待递归完毕:
- 因此想要返回递归完毕后的Sum,这里采用了Global的办法。