Pesquisar este blog

Livros Recomendados

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

sábado, 27 de fevereiro de 2021

URI (BEECROWD) - 1893 - Fases da Lua - Ad-Hoc - C e C++

Mais um problema da categoria Ad-Hoc! Esse é o "Fases da Lua", que envolve basicamente a criação de expressões lógicas em estruturas condicionais. Confira as respostas e compare com a sua solução!

Plataforma: URI (BEECROWD)

Problema1893

Enunciado:

Jade ganhou de presente de aniversário um telescópio e ficou muito feliz, pois adora olhar a lua à noite. Ela sempre foi uma estudante muito boa, e só analizando a lua por duas noites seguidas, já consegue identificar as mudanças que ocorreram na iluminação e o percentual aproximado da lua que está iluminada.

Você, que é amigo da Jade e estuda Computação, resolveu fazer um pequeno programa que, baseado nesta avaliação que ela fez nas duas últimas noites, informa a fase na qual a lua se encontra. Se a porção visível da lua no momento estiver entre 0 e 2%, por exemplo, é lua nova, se for entre 3 e 96% é lua crescente, se for entre 97 e 100% é lua cheia e se for entre 96 e 3% (diminuindo) é lua minguante.

Linguagens: C e C++

Solução:

Código em C:

Com base na porção visível, basta criar as condições para cada caso da lua utilizando estruturas condicionais.

#include <stdio.h>
int main() {
    
    int parteVisivel1, parteVisivel2;
    while (scanf("%d %d", &parteVisivel1, &parteVisivel2) != EOF) {
    
        if (parteVisivel2 >= 97 && parteVisivel2 <= 100)
            printf("cheia\n");
        else if (parteVisivel2 >= 0 && parteVisivel2 <= 2)
            printf("nova\n");
        else if (parteVisivel2 >= 3 && parteVisivel2 <= 96 && parteVisivel2 > parteVisivel1)
            printf("crescente\n");
        else
            printf("minguante\n");
    }
    
    return 0;
}

Código em C++:

Lógica igual a do código em C.

#include <iostream>
using namespace std;

int main() {
    
    int parteVisivel1, parteVisivel2;
    while (cin >> parteVisivel1 >> parteVisivel2) {
    
        if (parteVisivel2 >= 97 && parteVisivel2 <= 100)
            cout << "cheia";
        else if (parteVisivel2 >= 0 && parteVisivel2 <= 2)
            cout << "nova";
        else if (parteVisivel2 >= 3 && parteVisivel2 <= 96 && parteVisivel2 > parteVisivel1)
            cout << "crescente";
        else
            cout << "minguante";
            
        cout << 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