quitZAUMMM 18 Denunciar post Postado Outubro 2, 2008 Problema: Bits Trocados As Ilhas Weblands formam um reino independente nos mares do Pacífico. Como é um reino recente, a sociedade é muito influenciada pela informática. A moeda oficial é o Bit; existem notas de B$ 50,00, B$10,00, B$5,00 e B$1,00. Você foi contratado(a) para ajudar na programação dos caixas automáticos de um grande banco das Ilhas Weblands. Tarefa Os caixas eletrônicos das Ilhas Weblands operam com todos os tipos de notas disponíveis, mantendo um estoque de cédulas para cada valor (B$ 50,00, B$10,00, B$5,00 e B$1,00). Os clientes do banco utilizam os caixas eletrônicos para efetuar retiradas de um certo número inteiro de Bits. Sua tarefa é escrever um programa que, dado o valor de Bits desejado pelo cliente, determine o número de cada uma das notas necessário para totalizar esse valor, de modo a minimizar a quantidade de cédulas entregues. Por exemplo, se o cliente deseja retirar B$50,00, basta entregar uma única nota de cinquenta Bits. Se o cliente deseja retirar B$72,00, é necessário entregar uma nota de B$50,00, duas de B$10,00 e duas de B$1,00. Entrada A entrada é composta de vários conjuntos de teste. Cada conjunto de teste é composto por uma única linha, que contém um número inteiro positivo V, que indica o valor solicitado pelo cliente. O final da entrada é indicado por V = 0. Saída Para cada conjunto de teste da entrada seu programa deve produzir três linhas na saída. A primeira linha deve conter um identificador do conjunto de teste, no formato “Teste n”, onde n é numerado a partir de 1. Na segunda linha devem aparecer quatro inteiros I, J, K e L que representam o resultado encontrado pelo seu programa: I indica o número de cédulas de B$50,00, J indica o número de cédulas de B$10,00, K indica o número de cédulas de B$5,00 e L indica o número de cédulas de B$1,00. A terceira linha deve ser deixada em branco. A grafia mostrada no Exemplo de Saída, abaixo, deve ser seguida rigorosamente. Exemplo Entrada: 1 72 0 Saída: Teste 1 0 0 0 1 Teste 2 1 2 0 2 Restrições 0 <= V <= 10000 (V = 0 apenas para indicar o fim da entrada) Fonte: http://olimpiada.ic.unicamp.br/passadas/OBI2000 Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 4, 2008 #include <stdio.h> #include <math.h> int main() { float Valor; const float notas[] = {50.00,10.00,5.00,1.00}; int contador = 1; int quantidade,indice; while(scanf("%f\n",&Valor),Valor>0 && Valor<=10000.00) { printf("Teste %d\n",contador++); for(indice=0;indice<5;indice++) { quantidade = (int)floor(Valor/notas[indice]); printf("%d ",quantidade); Valor = Valor - quantidade*notas[indice]; } puts(""); } } Não testei. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 8, 2008 ñ ta correto... soh tenho q ver em ql caso, pois submeti ele e deu resposta errada. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 8, 2008 Judge online que não mostra o caso errado é o mesmo que nada. Então p/ quê ter um? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 9, 2008 vow baixar os *.in e *.out, ai vejo ql caso esta dando erro. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Novembro 6, 2008 Movido: Lógica de Programação e Algoritmos » Desafios (Programação) http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Lógica de Programação e Algoritmos --- O tópico ficará pendurá-do por 2 semanas, se naum houver movimento irei despendurá-lo. []'s Compartilhar este post Link para o post Compartilhar em outros sites