Um caixa eletrônico dispõe apenas de cédulas de
50
\mathrm{R} $2
\mathrm{R} $ 5
\mathrm{R} $53$ não devem ser permitidos.
Passo 1
Vou listar claramente o que o enunciado nos dá e o que ele pede.
- Informação dada:
- O caixa só tem cédulas de
e de . - Exemplos de saques que não devem ser permitidos:
e .
- O caixa só tem cédulas de
- O que o enunciado pede:
- Criar um algoritmo que, dado um valor de saque
, determine quantas cédulas de e de devem ser entregues para somar exatamente . - Validar o valor solicitado (aceitar só valores que podem ser formados com essas cédulas).
- Criar um algoritmo que, dado um valor de saque
Passo 2
Modelagem matemática do problema — entender o que precisa ser resolvido.
- Seja
o valor do saque (um número inteiro, em reais). - Procuramos números inteiros não negativos
e tais que
onde
é a quantidade de cédulas de
e
a quantidade de cédulas de
.
- Significado das variáveis:
-
: número de cédulas de . -
: número de cédulas de . -
: valor pedido pelo usuário.
-
Passo 3
Validação inicial usando paridade (por que
deve ser par).
- Observe a equação
. Tomando ambos os lados módulo :
- Como
e , o lado esquerdo é congruente a . Logo
- Conclusão:
tem de ser um número par. Exemplos inválidos do enunciado ( e ) são ímpares, por isso são rejeitados. - Além disso, o menor saque possível usando as cédulas disponíveis é
. Portanto deve satisfazer .
Resumo da validação inicial:
- Rejeitar
se não for inteiro, ou se , ou se for ímpar.
Passo 4
Construção de uma solução concreta (como calcular
e
).
- Queremos uma solução inteira não negativa de
. Rearranjando:
-
Para que
seja inteiro não negativo precisamos que seja um número par não negativo. Se é par, então é par para qualquer inteiro, porque é par. Assim só precisamos garantir , ou seja . -
Para minimizar o número total de cédulas (objetivo prático de um caixa) e também para uma escolha simples e determinística, escolhemos a maior
possível tal que . Essa escolha dá o máximo de cédulas de e reduz a quantidade de cédulas de . -
Então tomamos
(ou seja, divisão inteira de
por
) e o resto
Como
e
são pares,
é par, e calculamos
- Fórmulas finais:
Passo 5
Por que essa escolha minimiza o número de cédulas? (pequena justificativa)
- O total de cédulas entregues é
. Substituindo :
- Aqui
é constante para um dado . Como é uma função decrescente de (coeficiente de é ), aumentar diminui . Portanto, escolher o maior possível (isto é, ) minimiza o número total de cédulas — faz sentido prático: cédulas de substituem 25 cédulas de .
Passo 6
Algoritmo passo a passo (em linguagem natural / pseudocódigo fácil de implementar)
- Ler o valor pedido
(inteiro). - Validar:
- Se
não é inteiro ou ou é ímpar, então rejeitar o saque (mensagem: valor inválido).
- Se
- Caso
seja válido: - Calcular
. - Calcular
(isto é, ). - Calcular
. - Entregar
cédulas de e cédulas de .
- Calcular
Passo 7
Exemplos rápidos (para fixar a ideia)
-
: , , . Entrega: duas cédulas de . -
: , , . Entrega: uma cédula de e doze de . -
: , , . Entrega: vinte e quatro cédulas de . -
ou : é ímpar → saque inválido (conforme enunciado).
Resposta
Número de cédulas de
:
Número de cédulas de :
Validação: aceitar apenas inteiro,
e
par; caso contrário, saque inválido.
Número de cédulas de
Validação: aceitar apenas