Pesquisar este blog

Livros Recomendados

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;
}

Nenhum comentário:

Postar um comentário

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