Pesquisar este blog

Livros Recomendados

Mostrando postagens com marcador 2139. Mostrar todas as postagens
Mostrando postagens com marcador 2139. Mostrar todas as postagens

quarta-feira, 3 de março de 2021

URI (BEECROWD) - 2139 - Natal de Pedrinho - Iniciante - C e C++

Resolvi e estou postando agora o problema "Natal de Pedrinho". É sobre calcular datas, veja abaixo!

Plataforma: URI (BEECROWD)

Problema2139

Enunciado:

Pedrinho é um garoto que adora festas em família, principalmente o Natal, quando ganha presente dos pais e dos avós. Esse ano, seu pai lhe prometeu um PS4, mas somente se Pedrinho conseguir resolver alguns desafios ao longo do ano, sendo um deles, escrever um programa que calcule quantos dias faltam para o Natal.

Entretanto, Pedrinho tem somente 9 anos e não tem noção alguma de programação, mas sabe que você, primo dele, mexe com "coisas de computador", e dessa forma, pediu para você escrever o programa para ele. Não somente isso, mas prometeu que deixaria você jogar todo final de semana e por quanto tempo quiser!

Linguagens: C e C++


Solução:

Basta verificar quantos dias faltam dependendo de cada mês. Podia ser calculado com soma e com array, colocando a quantidade de dias de cada mês, mas eu já coloquei o número direto para poupar a máquina. Utilizei o pré-processador para DIA_NATAL valer 25, mas se você quiser pode usar o valor 25 diretamente. E você, como resolveu?

Código em C:

#include <stdio.h>
#include <stdlib.h>

#define DIA_NATAL 25

int main () {
    
    int mes, dia, diasRestantes;
    
    while (scanf("%i %i", &mes, &dia) != EOF) {
        
        diasRestantes = DIA_NATAL - dia;
            
        switch (mes) {
            case 1:
                diasRestantes += 335;
                break;
            case 2:
                diasRestantes += 304;
                break;
            case 3:
                diasRestantes += 275;
                break;
            case 4:
                diasRestantes += 244;
                break;
            case 5:
                diasRestantes += 214;
                break;
            case 6:
                diasRestantes += 183;
                break;
            case 7:
                diasRestantes += 153;
                break;
            case 8:
                diasRestantes += 122;
                break;
            case 9:
                diasRestantes += 91;
                break;
            case 10:
                diasRestantes += 61;
                break;
            case 11:
                diasRestantes += 30;
                break;
            default:
                break;                    
        }
            
            
        if (diasRestantes == 0)
            printf("E natal!\n");
            
        else if (diasRestantes == 1)
            printf("E vespera de natal!\n");
            
        else if (diasRestantes < 7)
            printf("Ja passou!\n");
        
        else
            printf("Faltam %i dias para o natal!\n", diasRestantes);
        
    }

    return 0;
}

Código em C++:

#include <iostream>
#define DIA_NATAL 25

using namespace std;

int main () {
    
    int mes, dia, diasRestantes;
    
    while (cin >> mes >> dia) {
        
        diasRestantes = DIA_NATAL - dia;
            
        switch (mes) {
            case 1:
                diasRestantes += 335;
                break;
            case 2:
                diasRestantes += 304;
                break;
            case 3:
                diasRestantes += 275;
                break;
            case 4:
                diasRestantes += 244;
                break;
            case 5:
                diasRestantes += 214;
                break;
            case 6:
                diasRestantes += 183;
                break;
            case 7:
                diasRestantes += 153;
                break;
            case 8:
                diasRestantes += 122;
                break;
            case 9:
                diasRestantes += 91;
                break;
            case 10:
                diasRestantes += 61;
                break;
            case 11:
                diasRestantes += 30;
                break;
            default:
                break;                    
        }
            
            
        if (diasRestantes == 0)
            cout << "E natal!" << endl;
            
        else if (diasRestantes == 1)
            cout << "E vespera de natal!" << endl;
            
        else if (diasRestantes < 7)
            cout << "Ja passou!" << endl;
        
        else
            cout << "Faltam " << diasRestantes << " dias para o natal!" << endl;
        
    }

    return 0;
}

Postagem em destaque

URI (BEECROWD) - 2158 - Helping Uncle Cláudio (Ajudando o Tio Cláudio) - Matemática - C, C++ e Haskell

Buenas! Estou aqui mais uma vez para resolver um problema de Matemática! Agora tenho resolvido alguns dessa categoria, pra que vocês possam ...

Postagens mais visitadas