Umpaísemiteapenasduasmoedasdevaloresdiferentes:umade7unidadesmonetárias eoutrade11.Assim, somas como 15 unidades não podem serobtidas demaneira exata.
Qualéamaiorquantia,menorque70unidades,quenãopodeserpagacomqualquer combinação das duas moedas?
Observação: vocêdevedeixar claro em suaresposta o raciocínio que o levouàresposta.
Nesse caso de valores monetários, podemos utilizar o seguinte algoritmo:
{ se (i == j) return 0; int k; int min = INT_MAX; contagem int; // coloque parênteses em lugares diferentes // entre a primeira e a última matriz, recursivamente // calcula a contagem de multiplicações para // cada colocação parêntesis e retornar o // contagem mínima para (k = i; k <j; k ++) { count = MatrixChainOrder (p, i, k) + MatrixChainOrder (p, k + 1, j) + p [i - 1] * p [k] * p [j]; se (contar <min) min = count; } // Retorna a contagem mínima return min;} // Driver Codeint main (){ int arr [] = {1, 2, 3, 4, 3}; int n = tamanho de (arr) / sizeof (arr [0]); cout << "Número mínimo de multiplicações é" << MatrixChainOrder (arr, 1, n - 1);}Nesse caso de valores monetários, podemos utilizar o seguinte algoritmo:
{ se (i == j) return 0; int k; int min = INT_MAX; contagem int; // coloque parênteses em lugares diferentes // entre a primeira e a última matriz, recursivamente // calcula a contagem de multiplicações para // cada colocação parêntesis e retornar o // contagem mínima para (k = i; k <j; k ++) { count = MatrixChainOrder (p, i, k) + MatrixChainOrder (p, k + 1, j) + p [i - 1] * p [k] * p [j]; se (contar <min) min = count; } // Retorna a contagem mínima return min;} // Driver Codeint main (){ int arr [] = {1, 2, 3, 4, 3}; int n = tamanho de (arr) / sizeof (arr [0]); cout << "Número mínimo de multiplicações é" << MatrixChainOrder (arr, 1, n - 1);}Nesse caso de valores monetários, podemos utilizar o seguinte algoritmo:
{ se (i == j) return 0; int k; int min = INT_MAX; contagem int; // coloque parênteses em lugares diferentes // entre a primeira e a última matriz, recursivamente // calcula a contagem de multiplicações para // cada colocação parêntesis e retornar o // contagem mínima para (k = i; k <j; k ++) { count = MatrixChainOrder (p, i, k) + MatrixChainOrder (p, k + 1, j) + p [i - 1] * p [k] * p [j]; se (contar <min) min = count; } // Retorna a contagem mínima return min;} // Driver Codeint main (){ int arr [] = {1, 2, 3, 4, 3}; int n = tamanho de (arr) / sizeof (arr [0]); cout << "Número mínimo de multiplicações é" << MatrixChainOrder (arr, 1, n - 1);}Para escrever sua resposta aqui, entre ou crie uma conta.
Projeto e Desenvolvimento de Algoritmos
•UFF
Projeto e Desenvolvimento de Algoritmos
•UFF
Projeto e Desenvolvimento de Algoritmos
Complexidade de Algoritmos
•ESTÁCIO EAD
Compartilhar