Plataforma: URI (BEECROWD)
Problema: 2454
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; }
#include <iostream> using namespace std; int main() { int p, r; cin >> p >> r; cout << (p? (r? 'A' : 'B'): 'C') << endl; return 0; }
Voces podem resolver em python?
ResponderExcluir