...
Code Block | ||
---|---|---|
| ||
function vector = countCoins(coinList) vector = zeros(1, 4); %oppretter returvektoren for i = 1:length(coinList) if coinList(i) == 1 vector(1) = vector(1) + 1; elseif coinList(i) == 5 vector(2) = vector(2) + 1; elseif coinList(i) == 10 vector(3) = vector(3) + 1; elseif coinList(i) == 20 vector(4) = vector(4) + 1; end end end |
c)
Code Block |
---|
function numCoinsvector = countCoins (listcoinList) tempListvector = zeros(2,max(list)1, 4); % lager en liste med antall elementer lik verdien til største mynten. joppretter returvektoren sum = 0; for i = list 1:length(coinList) if tempListcoinList(2,i) == tempList(2,i)+1; % Teller antall mynter med denne verdien på plassen som tilsvarervector(1) = vector(1) + 1; % verdien til denne mynten. elseif coinList(i) == 5 % 5 kroninger blir lagret i listvector(2,5), fordi i = 5 for alle 5 kroningervector(2) + 1; tempList(1,elseif coinList(i) == i;10 % Angir verdien til mynten med denne indeksen.vector(3) = vector(3) + 1; % 5 kroninger har verdi 5. elseif coinList(i) == 20 jvector(4) = jvector(4) + 1; if (mod(j,20)==0)else fprintferror('SummenKun er: %d\n', sum(list(1:j)))gyldige mynter!'); end end tempIndex sum = find(tempList(2,:)); % find finner indeksen til alle elementer i listen som er ulik null. numCoins = tempList(:,tempIndex); % Lager en ny liste med alle mynter som vi har flere enn null av. for i = 1:length(numCoins) fprintf('Du har %d %d-kroninger\n',numCoins(2,i),numCoins(1,i))sum + coinList(i); % dersom vi har talt 20 mynter, skriver vi ut summen if mod(i,20) == 0 disp(sum); end end end |
d)
Code Block |
---|
function numCoins = dailyCoins(dailyDinner) %dailyDinner = [60,139,63,102,94,83,49,75,133,102]; coins = [20,10,5,1]; %%% En liste over verdien til mynter vi kan betale med numCoins = zeros(length(dailyDinner),length(coins)); %%% Denne listen skal inneholde hvor mange av de forskjellige myntene vi %%% trenger hver dag. %%% numCoins(i,j) gir antall mynter for dag i av myntnummer j %%% numCoins(1,1) skal være 3, fordi 60 = 3*20 i = 1; %%% Dag j = 1; %%% Mynt while i <= length(dailyDinner) %%% så lenge det finnes flere dager if dailyDinner(i)-sum(coins.*numCoins(i,:))-coins(j) >= 0 %%% Sjekker om man kan bruke en mynt til av samme type %%% uten å overstige prisen på middagen numCoins(i,j) = numCoins(i,j)+1; % legger til en mynt. elseif dailyDinner(i)-sum(coins.*numCoins(i,:)) == 0 %%% Sjekker om vi har funnet rett antall mynter for denne middagen i = i+1; %%% går til neste middag j = 1; %%% Angir at vi skal coins(1) igjen. else j = j+1; %%% angir at vi må bruke neste mynt end end |
...