Resolvi e estou postando agora o problema "Natal de Pedrinho". É sobre calcular datas, veja abaixo!
Plataforma: URI (BEECROWD)
Problema: 2139
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; }