[tiago] 0 Denunciar post Postado Maio 27, 2005 Ae galera eh o segunte, em um trabalho da facul, pediram para ser simulado um caixa eletronico, saque, extraado, depósito e etc....Isto eu ja consegui fazer, mas uma parte do script, na parte de saque o programa tem de liberar o menor numero possível de notas...ou seja, se quiser sacar 375 reais...o programa tem de me liberar 3 notas de 100 uma de 50, uma de 20 e uma de 5este seria o modo que retornaria ao cliente menor numero de notas...Eu ja coloquei o valor das notas em vetores...tipo:vNotas100[]=new int [10];fiz insto com os valores de notas...agora soh tenhu q descobrir como fazer pra liberar o menor numero de notas... alguem me ajuda ae?desde ja valew... Compartilhar este post Link para o post Compartilhar em outros sites
Graymalkin 0 Denunciar post Postado Maio 28, 2005 Vá subtraindo o valor da nota do valor a ser retirado. Quando o resultado for negativo, você passa para a próxima nota. Exemplo:(100 é a primeira maior nota, então começamos com ela)375-100 = 275275-100 = 175175-100 = 7575-100 = -25 (ops, negativo! Então, partamos para a segunda maior nota: 50)75-50 = 2525-50 = -25 (ops, negativo! Então, partamos para a terceira maior nota: 20)25-20 = 55-20 = -15 (ops, negativo! Então, partamos para a quarta maior nota: 10)5-10 = -5 (ops, negativo! Então, partamos para a quinta maior nota: 5)5-5 = 0 (acabou!)Não conte as operações cujo resultado foi negativo, e você obterá as três de 100, uma de 50, uma de 20 e uma de 5. Certo? ;) Abraços,Graymalkin Compartilhar este post Link para o post Compartilhar em outros sites
[tiago] 0 Denunciar post Postado Maio 28, 2005 valew, entendi....isso dentro de um loop neh...vou tentar escrever o script e se der certo posto akifalow, valew Compartilhar este post Link para o post Compartilhar em outros sites
[tiago] 0 Denunciar post Postado Maio 28, 2005 Cara naum consegui....será q você podia me dar um exemplo... pode ser em algoritmo mesmo....com dois tipos de notas, coisa bem simples mesmo, soh pra ver se pega no tranco....valew.... teh amis Compartilhar este post Link para o post Compartilhar em outros sites
Graymalkin 0 Denunciar post Postado Maio 29, 2005 Bom, escrevi o "algoritmo" (se bem que se você trocar as palavras em português pelas palavras em inglês você terá o código todo pronto, porém não em Java ou C++, mas sim em uma outra linguagem...): notasSaída = [] #guardar as notas que saírão do caixa eletrôniconotas = [100, 50, 20, 10, 5, 1] #notas que podem ser sacadasvalor = 375 #valor a ser sacadorestante = valor #faz uma cópia do valor em "restante"inota = 0 #índice da nota: 0 é 100, 1 é 50, 2 é 20, 3 é 10, ...enquanto restante>0: #enquanto restante for maior que 0 resultado = restante-notas[inota] #calcula o resultado da subtração entre o valor e a nota se resultado<0: #se for negativo: inota++ #incrementa o índice para a próxima nota senão: #se for positivo ou zero: restante = resultado #deixa restante com o novo resultado notasSaída.adicionar(notas[inota]) #adiciona a nota utilizada nas que devem sair do caixapara nota em notasSaída: # escreve as notas que devem sair escreva nota Sacou? ;) Abraços, Graymalkin Compartilhar este post Link para o post Compartilhar em outros sites
Anderson Fernandes 0 Denunciar post Postado Abril 5, 2009 Bom, escrevi o "algoritmo" (se bem que se você trocar as palavras em português pelas palavras em inglês você terá o código todo pronto, porém não em Java ou C++, mas sim em uma outra linguagem...): notasSaída = [] #guardar as notas que saírão do caixa eletrônico notas = [100, 50, 20, 10, 5, 1] #notas que podem ser sacadas valor = 375 #valor a ser sacado restante = valor #faz uma cópia do valor em "restante" inota = 0 #índice da nota: 0 é 100, 1 é 50, 2 é 20, 3 é 10, ... enquanto restante>0: #enquanto restante for maior que 0 resultado = restante-notas[inota] #calcula o resultado da subtração entre o valor e a nota se resultado<0: #se for negativo: inota++ #incrementa o índice para a próxima nota senão: #se for positivo ou zero: restante = resultado #deixa restante com o novo resultado notasSaída.adicionar(notas[inota]) #adiciona a nota utilizada nas que devem sair do caixa para nota em notasSaída: # escreve as notas que devem sair escreva nota Sacou? ;) Abraços, Graymalkin Boa!!! Mas como fazer isso sem a nota de 1 real? vlw!!! Compartilhar este post Link para o post Compartilhar em outros sites