Um caixa eletrônico dispõe apenas de cédulas de \mathrm{R} \ 50 e\mathrm{R} $2 para saques. Elabore um algoritmo que calcule quantas cédulas de cada tipo devem ser fornecidas para satisfazer um valor de saque informado. Seu algoritmo deve validar o valor solicitado. Por exemplo, saques nos valores deé\mathrm{R} $ 5 ou de\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 \mathrm{R}\$\,50 e de \mathrm{R}\$\,2.
    • Exemplos de saques que não devem ser permitidos: \mathrm{R}\$\,5 e \mathrm{R}\$\,53.
  • O que o enunciado pede:
    • Criar um algoritmo que, dado um valor de saque A, determine quantas cédulas de \mathrm{R}\$\,50 e de \mathrm{R}\$\,2 devem ser entregues para somar exatamente A.
    • Validar o valor solicitado (aceitar só valores que podem ser formados com essas cédulas).

Passo 2

Modelagem matemática do problema — entender o que precisa ser resolvido.
  • Seja A o valor do saque (um número inteiro, em reais).
  • Procuramos números inteiros não negativos x e y tais que
50x + 2y = A,
onde x é a quantidade de cédulas de \mathrm{R}\$\,50 e y a quantidade de cédulas de \mathrm{R}\$\,2.
  • Significado das variáveis:
    • x: número de cédulas de 50.
    • y: número de cédulas de 2.
    • A: valor pedido pelo usuário.

Passo 3

Validação inicial usando paridade (por que A deve ser par).
  • Observe a equação 50x+2y=A. Tomando ambos os lados módulo 2:
50x + 2y \equiv A \pmod{2}.
  • Como 50\equiv0\pmod{2} e 2\equiv0\pmod{2}, o lado esquerdo é congruente a 0\pmod{2}. Logo
A \equiv 0 \pmod{2}.
  • Conclusão: A tem de ser um número par. Exemplos inválidos do enunciado ( 5 e 53) são ímpares, por isso são rejeitados.
  • Além disso, o menor saque possível usando as cédulas disponíveis é \mathrm{R}\$\,2. Portanto A deve satisfazer A\ge 2.
Resumo da validação inicial:
  • Rejeitar A se não for inteiro, ou se A<2, ou se A for ímpar.

Passo 4

Construção de uma solução concreta (como calcular x e y).
  • Queremos uma solução inteira não negativa de 50x+2y=A. Rearranjando:
y=\frac{A-50x}{2}.
  • Para que y seja inteiro não negativo precisamos que A-50x seja um número par não negativo. Se A é par, então A-50x é par para qualquer x inteiro, porque 50x é par. Assim só precisamos garantir A-50x\ge 0, ou seja x\le \dfrac{A}{50}.
  • 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 x possível tal que A-50x\ge 0. Essa escolha dá o máximo de cédulas de 50 e reduz a quantidade de cédulas de 2.
  • Então tomamos
x = \left\lfloor \frac{A}{50} \right\rfloor
(ou seja, divisão inteira de A por 50) e o resto
r = A \bmod 50 = A - 50x.
Como A e 50 são pares, r é par, e calculamos
y = \frac{r}{2}.
  • Fórmulas finais:
x = \left\lfloor \frac{A}{50} \right\rfloor,\qquad y = \frac{A - 50x}{2}.

Passo 5

Por que essa escolha minimiza o número de cédulas? (pequena justificativa)
  • O total de cédulas entregues é N = x+y. Substituindo y:
N = x + \frac{A-50x}{2} = \frac{A}{2} - 24x.
  • Aqui \dfrac{A}{2} é constante para um dado A. Como N é uma função decrescente de x (coeficiente de x é -24), aumentar x diminui N. Portanto, escolher x o maior possível (isto é, x=\lfloor A/50\rfloor) minimiza o número total de cédulas — faz sentido prático: cédulas de 50 substituem 25 cédulas de 2.

Passo 6

Algoritmo passo a passo (em linguagem natural / pseudocódigo fácil de implementar)
  1. Ler o valor pedido A (inteiro).
  2. Validar:
    • Se A não é inteiro ou A<2 ou A é ímpar, então rejeitar o saque (mensagem: valor inválido).
  3. Caso A seja válido:
    • Calcular x \leftarrow \left\lfloor \dfrac{A}{50} \right\rfloor.
    • Calcular r \leftarrow A - 50x (isto é, r = A \bmod 50).
    • Calcular y \leftarrow \dfrac{r}{2}.
    • Entregar x cédulas de \mathrm{R}\$\,50 e y cédulas de \mathrm{R}\$\,2.

Passo 7

Exemplos rápidos (para fixar a ideia)
  • A=100: x=\lfloor100/50\rfloor=2, r=0, y=0. Entrega: duas cédulas de 50.
  • A=74: x=\lfloor74/50\rfloor=1, r=24, y=12. Entrega: uma cédula de 50 e doze de 2.
  • A=48: x=\lfloor48/50\rfloor=0, r=48, y=24. Entrega: vinte e quatro cédulas de 2.
  • A=5 ou A=53: A é ímpar → saque inválido (conforme enunciado).

Resposta

Número de cédulas de \mathrm{R}\$\,50: \displaystyle x=\left\lfloor\frac{A}{50}\right\rfloor
Número de cédulas de \mathrm{R}\$\,2: \displaystyle y=\frac{A-50x}{2}
Validação: aceitar apenas A inteiro, A\ge 2 e A par; caso contrário, saque inválido.

Exercícios relacionados