// Peut-on faire l'appoint ? function Sol=achat(p,a,b,c,d,e,f,g,h) E=[a,b,c,d,e,f,g,h];// a,b,c,d,e,f,g,h désignent respectivement les nombres de pièces de 1 c, 2 c, 5 c, 10 c, 20 c, de 50 c, de 1 € et de 2 € disponibles pour l'achat (nombres entiers >=0) ; p désigne le prix en c. A=[0:E(1)]'; for i=2:8 B=[]; r=size(A,'r'); for j=0:E(i) C=[A,j*ones(r,1)]; B=[B;C]; end A=B; end val=diag([1,2,5,10,20,50,100,200]); sommes=sum(A*val,"c"); lignessol=find(sommes==p*ones(sommes)); Sol=A(lignessol,:) endfunction