how correctly make recursive call within every if-statement change of money? im focusing on "change" variable.thanks
test case 1-------------------------------------------------------------------------------
<>> [change,flag] = makechangerecursive(2,100)
change =
50
20
20
5
2
1
flag =
1
my code following
function [change,flag] = makechangerecursive(cost,paid) if > 0 flag = true; elseif == 0 change = 0; flag = true; return elseif cost > paid; flag = false; change = []; warning('that''s not enough buy item.'); return end if >= 100
change = [change; makechangerecursive(cost,paid - change )];
paid =paid-100; elseif >= 50 change = [change; 50]; paid =paid-50; elseif
this continues dollar values.
let's take @ first case:
if >= 100 change = [change; makechangerecursive(cost,paid - change )]; paid =paid-100; elseif ...
the first time call function, variable change
doesn't have in it. in fact, never have in @ beginning of function call because don't pass in parameter or give value prior line. putting change
on right-hand side of assignment give error.
but that's okay, because that's not want anyway. want build change
beginning.
in addition, change
list of values. want pass recursive calls single value, paid
after updating value.
let's build step step:
if >= 100
if true, want subtract 100
amount paid (what pass in recursive call) , add 100
our list of change. let's first part:
paid = paid - 100;
as said, want update paid
first because we're going use value in recursive call, happens next, along adding our new change value list:
change = [100; makechangerecursive(cost, paid)]; elseif ...
and on remainder of change values. i'm sure can take care of rest of them yourself.
i noticed didn't assign value extra
. might have been cut-and-paste error, need make sure have @ beginning of function.
Comments
Post a Comment