Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX(x,y) ( ((x)>(y))? (x):(y))
- #define MAXSIZE 100
- int main(int argc, char** argv) {
- int F[MAXSIZE+1],C[MAXSIZE+1];
- int m,k,dato,i;
- printf("Ingrese la cantidad de monedas (maximo 100): ");
- scanf("%d",&m);
- printf("Ingrese las %d monedas : ",m);
- for (k=1;k<=m;k++){
- scanf("%d",&dato);
- C[k]=dato;
- }
- F[0]=0;int monedas[m];
- F[1]=C[1];
- for (k=2;k<=m;k++) {
- F[k]=MAX(C[k]+F[k-2],F[k-1]);
- }
- k=m;int s=0;
- while(k>1){
- if( F[k]==C[k]+F[k-2]){
- monedas[s]=C[k];
- k--;
- }else monedas[s]=C[k-1];
- s++;
- k--;
- }
- printf("La maxima suma es: %d \n",F[m]);
- printf("Las monedas usadas son: ");
- for (i=0;i<s;i++){
- printf("%d ",monedas[i]);
- }
- return (EXIT_SUCCESS);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement