Pesquisar este blog

Livros Recomendados

sexta-feira, 12 de março de 2021

URI (BEECROWD) - 2454 - Flíper - Ad-Hoc - C e C++

Plataforma: URI (BEECROWD)

Problema2454

Enunciado:

Flíper é um tipo de jogo onde uma bolinha de metal cai por um labirinto de caminhos até chegar na parte de baixo do labirinto. A quantidade de pontos que o jogador ganha depende do caminho que a bolinha seguir. O jogador pode controlar o percurso da bolinha mudando a posição de algumas portinhas do labirinto. Cada portinha pode estar na posição 0, que significa virada para a esquerda, ou na posição 1 que quer dizer virada para a direita. Considere o flíper da figura abaixo, que tem duas portinhas. A portinha P está na posição 1 e a portinha R, na posição 0. Desse jeito, a bolinha vai cair pelo caminho B.

Você deve escrever um programa que, dadas as posições das portinhas P e R, neste flíper da figura, diga por qual dos três caminhos, A, B ou C, a bolinha vai cair!

Linguagens: C e C++

Solução:

Aqui a solução é simples. Utilizamos o operador ternário apenas por uma questão de praticidade, mas poderia ter sido resolvido com a estrutura if. O teste "p?", assim como o teste "r?", verifica se o valor contido na variável é diferente de zero. Ou seja, se p for zero, escreve-se 'C' na tela. Se p for diferente de zero, testa-se r da mesma forma. Portanto, caso p seja diferente de zero, verifica-se o r. Neste caso, se r for zero, será impresso o valor 'B'; se não for zero, será impresso o valor 'A'.

Muitas vezes o valor ternário nos ajuda, pois escrevemos menos.

Código em C:

#include <stdio.h>

int main() {
    int p, r;
    
    scanf("%i %i", &p, &r);
    printf("%c\n", (p? (r? 'A' : 'B'): 'C'));
    return 0;
}

Código em C++:

#include <iostream>

using namespace std;

int main() {
    int p, r;
    
    cin >> p >> r;
    cout << (p? (r? 'A' : 'B'): 'C') << endl;
    return 0;
}

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