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

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