logotipo Blog Giovani Da Cruz
Algoritmos Sequenciais

Exercício: promoção leve 3, pague 2

5 min de leitura 209 visualizações

Algoritmos giovani

Fala galera da programação, tudo beleza?

Todos gostamos de uma boa promoção, não é verdade? E uma das formas de oferta é o deve X e pague por Y.  neste nosso exercício uma loja está fazendo o leve 3 e pague por 2.

O desafio é ler a quantidade de unidades que um consumidor está comprando e descobrir quantas unidades ele realmente vai pagar.

Este exercício é bem interessante para desenvolver nosso raciocínio lógico.

Exemplos de saída:

Comprando 1, será pago 1;
Comprando 2; serão pagos 2;
Comprando 3, serão pagos 2;
Comprando 4, serão pagos 3;
Comprando 5, serão pagos 4;
Comprando 6, serão pagos 4;
E assim por diante.

Ou seja, a cada 3 unidades compradas, uma vem de brinde.

Dica: Utilize operações de divisão inteira e resto da divisão inteira.

Beleza, então vamos ao código:

 

Exemplo em C++

/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include <iostream>

int main() {
    // Variável para armazenar a quantidade de itens comprados
    int quantidade;

    // Solicitar a quantidade de itens ao usuário
    std::cout << "Digite a quantidade de itens comprados: ";
    std::cin >> quantidade;

    // Calcular o número de itens a serem pagos com base na promoção
    int itensPagos = (quantidade / 3) * 2 + (quantidade % 3);

    // Exibir o resultado
    std::cout << "Itens a serem pagos: " << itensPagos << std::endl;

    return 0;
}

Este programa usa a operação de divisão inteira (/) para calcular quantos conjuntos completos de 3 itens o usuário comprou e multiplica esse valor por 2 (já que a promoção é “leve 3 pague 2”). Em seguida, adiciona o resto da divisão inteira (%) por 3 para contar os itens restantes que não formam um conjunto completo.

 

Exemplo em C

/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
#include <stdio.h>

int main() {
    // Variável para armazenar a quantidade de itens comprados
    int quantidade;

    // Solicitar a quantidade de itens ao usuário
    printf("Digite a quantidade de itens comprados: ");
    scanf("%d", &quantidade);

    // Calcular o número de itens a serem pagos com base na promoção
    int itensPagos = (quantidade / 3) * 2 + (quantidade % 3);

    // Exibir o resultado
    printf("Itens a serem pagos: %d\n", itensPagos);

    return 0;
}

O código em C é bastante semelhante ao código em C++. A principal diferença está na forma como as entradas e saídas são tratadas (usando printf e scanf em vez de std::cout e std::cin). Um ponto interessante é que este código em C é totalmente compatível em C++.

 

Exemplo em Pascal

{

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

}
program PromocaoLeve3Pague2;

var
  quantidade, itensPagos: Integer;

begin
  // Solicitar a quantidade de itens ao usuário
  Write('Digite a quantidade de itens comprados: ');
  Readln(quantidade);

  // Calcular o número de itens a serem pagos com base na promoção
  itensPagos := (quantidade div 3) * 2 + (quantidade mod 3);

  // Exibir o resultado
  Writeln('Itens a serem pagos: ', itensPagos);
end.

Este programa em Pascal faz praticamente a mesma coisa que os exemplos em C e C++. Ele usa Readln para obter a entrada do usuário e Write e Writeln para exibir os resultados.

 

Exemplo em Python

'''

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

'''

# Solicitar a quantidade de itens ao usuário
quantidade = int(input("Digite a quantidade de itens comprados: "))

# Calcular o número de itens a serem pagos com base na promoção
itens_pagos = (quantidade // 3) * 2 + (quantidade % 3)

# Exibir o resultado
print("Itens a serem pagos:", itens_pagos)

O código em Python é mais conciso e utiliza a função input para obter a entrada do usuário e a função print para exibir os resultados. O operador // realiza a divisão inteira, e o operador % retorna o resto da divisão.

 

Exemplo em C#/ C Sharp

/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
using System;

class Program
{
    static void Main()
    {
        // Solicitar a quantidade de itens ao usuário
        Console.Write("Digite a quantidade de itens comprados: ");
        int quantidade = Convert.ToInt32(Console.ReadLine());

        // Calcular o número de itens a serem pagos com base na promoção
        int itensPagos = (quantidade / 3) * 2 + (quantidade % 3);

        // Exibir o resultado
        Console.WriteLine("Itens a serem pagos: " + itensPagos);
    }
}

Neste código em C#, Console.ReadLine() é utilizado para obter a entrada do usuário, Convert.ToInt32 para converter a entrada para um número inteiro e Console.WriteLine para exibir os resultados.

 

Exemplo em Java

/******************************************************************************

Criado pelo Professor Giovani Da Cruz
https://giovanidacruz.com.br

*******************************************************************************/
import java.util.Scanner;

public class Leve3Pague2 {
    public static void main(String[] args) {
        // Criar um objeto Scanner para obter a entrada do usuário
        Scanner scanner = new Scanner(System.in);

        // Solicitar a quantidade de itens ao usuário
        System.out.print("Digite a quantidade de itens comprados: ");
        int quantidade = scanner.nextInt();

        // Calcular o número de itens a serem pagos com base na promoção
        int itensPagos = (quantidade / 3) * 2 + (quantidade % 3);

        // Exibir o resultado
        System.out.println("Itens a serem pagos: " + itensPagos);

        // Fechar o Scanner para evitar vazamento de recursos
        scanner.close();
    }
}

Neste código em Java, Scanner é utilizado para obter a entrada do usuário, e o método nextInt é usado para converter a entrada para um número inteiro. O resultado é então exibido usando System.out.println.

 

Beleza pessoal? Espero que tenham gostado.

 

Dúvidas ou sugestões de linguagens e melhorias? Deixe o seu comentário.

 

Um abraço e até o próximo post. Valeu.

 

#giovanidacruz

Deixe um comentário

Seu e-mail não será publicado.