Algoritmos
2 participantes
Página 1 de 1
Algoritmos
Você precisa simular o funcionamento de um caixa eletrônico. O cliente informa um valor desejado em reais e você precisa devolver o número de notas de R$ 100, R$ 50, R$ 20, R$ 10, R$ 5, R$ 2 ou moedas de R$ 1 que ele receberá. Você precisa entregar o maior número possível de notas altas primeiro, antes de entregar notas de valor mais baixo. Descreva os passos necessários para descobrir quantas notas de cada valor devem ser entregues ao cliente. Se o cliente solicitar, por exemplo,197 reais, você deve entregar uma nota de cem reais, uma nota de cinquenta reais, duas notas de vinte reais, uma de cinco reais e uma de dois reais.
Última edição por Lucas Garibaldi em Qua 05 Abr 2023, 01:20, editado 1 vez(es)
Lucas Garibaldi- Recebeu o sabre de luz
- Mensagens : 132
Data de inscrição : 27/06/2021
Re: Algoritmos
Para descobrir quantas notas de cada valor devem ser entregues ao cliente, é necessário seguir os seguintes passos:
Receber o valor desejado pelo cliente em reais.
Verificar qual a maior nota que é possível entregar, dividindo o valor por 100. O resultado dessa divisão será a quantidade de notas de R$ 100 a serem entregues, e o resto da divisão será o novo valor a ser considerado.
Repetir o passo anterior para as demais notas, seguindo a ordem decrescente de valor: R$ 50, R$ 20, R$ 10, R$ 5, R$ 2 e R$ 1.
Se o valor restante for diferente de zero ao final das divisões, significa que é necessário entregar moedas de R$ 1. A quantidade de moedas de R$ 1 será igual ao valor restante.
Entregar as notas/moedas de cada valor calculadas nos passos anteriores.
Para ilustrar esse processo, vamos considerar o exemplo dado na pergunta, em que o cliente solicita 197 reais:
O valor desejado pelo cliente é 197 reais.
A maior nota possível de entregar é R$ 100. Dividindo 197 por 100, temos como resultado 1, com resto de 97. Logo, é necessário entregar uma nota de R$ 100.
A próxima maior nota possível de entregar é R$ 50. Dividindo 97 por 50, temos como resultado 1, com resto de 47. Logo, é necessário entregar uma nota de R$ 50.
Repetindo o processo para as demais notas, temos: 2 notas de R$ 20, uma nota de R$ 5 e uma nota de R$ 2.
Como sobrou um valor de R$ 0, restante, não é necessário entregar moedas de R$ 1.
O total de notas/moedas entregues será: 1 nota de R$ 100, 1 nota de R$ 50, 2 notas de R$ 20, 1 nota de R$ 5 e 1 nota de R$ 2.
Segue abaixo um algoritmo em Python que implementa a lógica descrita no passo a passo anterior:
Este algoritmo recebe do usuário o valor desejado e, em seguida, percorre a lista de notas disponíveis em ordem decrescente. Para cada nota, é verificado quantas notas daquele valor são necessárias para atingir o valor desejado, subtraindo o valor das notas contadas do valor total a ser entregue. Ao final, o algoritmo imprime a quantidade de cada nota a ser entregue ao cliente.
Receber o valor desejado pelo cliente em reais.
Verificar qual a maior nota que é possível entregar, dividindo o valor por 100. O resultado dessa divisão será a quantidade de notas de R$ 100 a serem entregues, e o resto da divisão será o novo valor a ser considerado.
Repetir o passo anterior para as demais notas, seguindo a ordem decrescente de valor: R$ 50, R$ 20, R$ 10, R$ 5, R$ 2 e R$ 1.
Se o valor restante for diferente de zero ao final das divisões, significa que é necessário entregar moedas de R$ 1. A quantidade de moedas de R$ 1 será igual ao valor restante.
Entregar as notas/moedas de cada valor calculadas nos passos anteriores.
Para ilustrar esse processo, vamos considerar o exemplo dado na pergunta, em que o cliente solicita 197 reais:
O valor desejado pelo cliente é 197 reais.
A maior nota possível de entregar é R$ 100. Dividindo 197 por 100, temos como resultado 1, com resto de 97. Logo, é necessário entregar uma nota de R$ 100.
A próxima maior nota possível de entregar é R$ 50. Dividindo 97 por 50, temos como resultado 1, com resto de 47. Logo, é necessário entregar uma nota de R$ 50.
Repetindo o processo para as demais notas, temos: 2 notas de R$ 20, uma nota de R$ 5 e uma nota de R$ 2.
Como sobrou um valor de R$ 0, restante, não é necessário entregar moedas de R$ 1.
O total de notas/moedas entregues será: 1 nota de R$ 100, 1 nota de R$ 50, 2 notas de R$ 20, 1 nota de R$ 5 e 1 nota de R$ 2.
Segue abaixo um algoritmo em Python que implementa a lógica descrita no passo a passo anterior:
- Código:
# Definindo as notas disponíveis
notas = [100, 50, 20, 10, 5, 2, 1]
# Recebendo o valor desejado pelo cliente
valor = int(input("Digite o valor desejado: "))
# Inicializando a contagem das notas
notas_contadas = [0] * len(notas)
# Verificando quantas notas de cada valor são necessárias
for i in range(len(notas)):
notas_contadas[i] = valor // notas[i]
valor = valor % notas[i]
# Imprimindo a quantidade de cada nota a ser entregue
for i in range(len(notas)):
if notas_contadas[i] > 0:
print(f"{notas_contadas[i]} notas de R${notas[i]}")
Este algoritmo recebe do usuário o valor desejado e, em seguida, percorre a lista de notas disponíveis em ordem decrescente. Para cada nota, é verificado quantas notas daquele valor são necessárias para atingir o valor desejado, subtraindo o valor das notas contadas do valor total a ser entregue. Ao final, o algoritmo imprime a quantidade de cada nota a ser entregue ao cliente.
gilsongb- Padawan
- Mensagens : 89
Data de inscrição : 09/11/2012
Idade : 32
Localização : Curitiba
Re: Algoritmos
Olá, você me ajudou muito com sua explicação.
Lucas Garibaldi- Recebeu o sabre de luz
- Mensagens : 132
Data de inscrição : 27/06/2021
Tópicos semelhantes
» Complexidade de algoritmos
» Complexidade de algoritmos
» Complexidade de algoritmos
» Algoritmos para raiz quadrada e raiz enésima (por: Elcioschin)
» Complexidade de algoritmos
» Complexidade de algoritmos
» Algoritmos para raiz quadrada e raiz enésima (por: Elcioschin)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|