Ir para conteúdo

POWERED BY:

Arquivado

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

Lubas

algoritimo selos de 3 e 5 centavos

Recommended Posts

:huh: No correio local há somente selos de 3 e de 5 centavos. A taxa mínima para correspondência é de 8centavos. Faça um programa que determina o menor número de selos de 3 e de 5 centavos quecompletam o valor de uma taxa dada. Use estrutura de seleção de múltipla escolha.Será que alguma alma caridosa poderia me dar uma mãozinha? ta valendo ponto.....hehehehehepor favor...mandem a resposta no meu email: robsonlubas@hotmail.comobrigado!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse eh simples..apenas vou te passar a minha logica..pegue o valor que o usuario vai entrar, e vai subtraindo por 5 ate que ele fique menor q 5, enquanto isso vai contando qtas vezes ele vai sendo dividido..qdo este numero alcançar um valor menor que cinco, você terá três opções:1. ou ele eh 4, dai você tera que utilizar 2 selos de 3 centavos2. ou ele eh menor ou igual a 3.3. se for 0, naum necessitará de um selo de 3 centavos.agora desenvolva..

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse eh simples..apenas vou te passar a minha logica..pegue o valor que o usuario vai entrar, e vai subtraindo por 5 ate que ele fique menor q 5, enquanto isso vai contando qtas vezes ele vai sendo dividido..qdo este numero alcançar um valor menor que cinco, você terá três opções:1. ou ele eh 4, dai você tera que utilizar 2 selos de 3 centavos2. ou ele eh menor ou igual a 3.3. se for 0, naum necessitará de um selo de 3 centavos.agora desenvolva..

Ok ricci....tudo certo cara?1º obrigado, por tentar me ajudar cara....seguinte: indo de encontro a sua lógica, surgiram mais dúvidas cara, por exemplo....o valor da postagem deu 0,14 (centavos) 14-5=99-5=4 ou seja: o valor ja é menor que 5conto 2 selos de 5 centavosainda me restam 4 o que eu faço? "2 selos de 3 centavos????" daria um total de 6 centavos....será que é possível você me ajudar aravés de um exemplo prático? é que eu ainda estou começando...nao entendi muito bem sua lógica..desde ja, obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo Lubas irei apresentar a lógica do problema descrito acima...

 

Dado uma taxa você deverá dividí-la por 5...daí então avaliar os seguintes casos:

 

1º caso: Se o resto da divisão da taxa por 5 for = 0...Daí então, o número de selos serão dados pela divisão da taxa por 5...tendo aí então somente selos de 5 centavos.

nº de selos = taxa / 5.

 

2º caso: Se o resto da divisão da taxa por 5 for = 1...Daí então os números de selos serão: 2 selos de 3 centavos + (a diferença da taxa menos o valor de 2 selos de 3 centavos) dividido por 5.

nº de selos = 2 + (taxa - 6) / 5.

 

3º caso: Se o resto da divisão da taxa por 5 for = 2...Daí então os números de selos serão: 4 selos de 3 centavos + (a diferença da taxa menos o valor de 4 selos de 3 centavos) dividido por 5.

nº de selos = 4 + (taxa - 12) / 5

 

4º caso: Se o resto da divisão da taxa por 5 for = 3...Daí então os números de selos serão: 1 selos de 3 centavos + (a diferença da taxa menos o valor de 1 selo de 3 centavos) dividido por 5.

nº de selos = 1 + (taxa - 3) / 5

 

5º caso: Se o resto da divisão da taxa por 5 for = 4...Daí então os números de selos serão: 3 selos de 3 centavos + (diferença da taxa menos o valor de 3 selos de 3 centavos) dividido por 5

nº de selos = 3 + (taxa - 9) / 5

 

Esta é a lógica do problema citado acima usando uma estrutura de escolha múltiplas

espero tê-lo ajudado...

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif WXB

Compartilhar este post


Link para o post
Compartilhar em outros sites

você vai se deparar com números que naum são divisíveis por 3 e 5 respectivamente..

como no caso do 0,14 ..

entao, havera soluções que naum baterão nunca exatamente com o valor da postagem, pois você soh tem selos de 5 e 3 centavos.

para o desenvolvimento, siga os passos:

 

multiplica-se o valor da postagem por 100.. pois estamos trabalhando com centavos

 

faça um laço subtraindo este resultado por 5 ate q seja menor q o proprio 5:

enquanto valor >= 5 faça	valor = valor - 5	contador_5 = contador_5 + 1fimenquanto

qdo a variavel valor sair deste laço, ela terá o valor restante que é menor q 5

então faça novamente o laço soh q agora trabalhando com o 3

enquanto valor>=0 faça   valor = valor - 3   contador_3 = contador_3 + 1fimenquanto
dai você pergunta: Pq eu comparo se o valor eh maior q 0 e naum maior q 3?

dai eu respondo: O enunciado do problema esta pedindo para obter o menor numero de selos para cobrir o valor!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

no final você tera em contador_5 e contador_3 as qtdes de selos utilizados..

 

poste ai, caso ainda penumbre alguma duvida...

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Q usina de idéias heim http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Ricci, cuidado q nesse problema tem um "pega-ratão", pelo seu algoritmo vai resultar:

taxa	selos de cinco	selos de três	pagou08	   1				   1			  8	ok09 	  1				   2			 11	CUIDADO o correto é 3 selos de três10 	  2				   0			 10	ok11 	  2				   1			 13	CUIDADO o correto é 1 selo de cinco e 2 de três12 	  2				   1			 13	CUIDADO o correto é 4 selos de três13 	  2				   1			 13	ok14 	  2 				  2			 16	CUIDADO o correto é 1 selo de cinco e 3 de três15 	  3 				  0			 15	ok	  16 	  3 				  1			 18	CUIDADO o correto é 2 selos de cinco e 2 de três17	   3				   1			 18	CUIDADO o correto é 1 selo de cinco e 4 de três18	   3				   1			 18	ok
WXB, uma correçãozinha:

"...Se a divisão da taxa por 5 for..." leia-se "...Se o resto da divisão da taxa por 5 for..."

 

Lubas, se não conhecer o operador 'MOD' que calcula automaticamente o RESTO da DIVISÃO INTEIRA, estude-a, você vai usar muuuuito, podcrê. Por exemplo, 14 mod 5 = 4 <- resto da divisão inteira de 14 por 5.

 

Só pra botá um pouco de lenha na fogueira, e se os selos fossem de 2 e 5 centavos ? :wacko:

 

{ }

Palc

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica para selos de 5 centavos e 2 centavos seria a mesma que para selos de 3 centavos e 5 centavos...somente a taxa mínima deveria ser de 7 centavos...Vamos lá então:

 

Dado uma taxa você deverá dividí-la por 5...daí então avaliar os seguintes casos:

 

1º caso: Se o resto da divisão da taxa por 5 for = 0...Daí então, o número de selos serão dados pela divisão da taxa por 5...tendo aí então somente selos de 5 centavos.

nº de selos = taxa / 5.

 

2º caso: Se o resto da divisão da taxa por 5 for = 1...Daí então os números de selos serão: 3 selos de 2 centavos + (a diferença da taxa menos o valor de 3 selos de 2 centavos) dividido por 5.

nº de selos = 3 + (taxa - 6) / 5.

 

3º caso: Se o resto da divisão da taxa por 5 for = 2...Daí então os números de selos serão: 1 selos de 2 centavos + (a diferença da taxa menos o valor de 1 selo de 2 centavos) dividido por 5.

nº de selos = 1 + (taxa - 2) / 5.

 

4º caso: Se o resto da divisão da taxa por 5 for = 3...Daí então os números de selos serão: 4 selos de 2 centavos + (a diferença da taxa menos o valor de 4 selos de 2 centavos) dividido por 5.

nº de selos = 4 + (taxa - 8) / 5.

 

5º caso: Se o resto da divisão da taxa por 5 for = 4...Daí então os números de selos serão: 2 selos de 2 centavos + (diferença da taxa menos o valor de 2 selos de 2 centavos) dividido por 5

nº de selos = 2 + (taxa - 4) / 5.

 

Como poderemos ver a lógica é a mesma...

 

E obrigado Palc pela dica da correção,pois a mesma já foi feita...http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.