Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

quitZAUMMM

[Desafio] Bits Trocados

Recommended Posts

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

#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

ñ 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

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

vow baixar os *.in e *.out, ai vejo ql caso esta dando erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.