1437 - Esquerda, Volver!
Mais um problema para testar sua criatividade usando operações matemáticas.
Descrição
Solução
Algo que pode nos ajudar muito a calcular a direção resultante do recruta é mapear cada direção a um número específico. A tabela abaixo mostra o mapeamento que vamos usar, mas você pode usar qualquer um, desde que facilite seu cálculo com os comandos E
e D
:
Direção | Número |
Norte (N) | 0 |
Leste (L) | 1 |
Sul (S) | 2 |
Oeste (O) | 3 |
Desta maneira, cada comando equivale a uma operação no número da direção.
Comando
D
:(numero + 1) % 4
Comando
E
:((numero - 1) + 4) % 4
Dê uma olhada na página Deslocar dentro de um intervalo [0, N - 1] para entender porque os comandos D
e E
funcionam. A tabela abaixo mostra o resultado para cada direção após as operações para ter uma prova real de que sempre dá o resultado apropriado.
Direção antes do comando | Número antes do comando | Comando | Número após o comando | Direção após o comando |
Norte (N) | 0 | D | (0 + 1) % 4 = 1 | Leste (L) |
Norte (N) | 0 | E | ((0 - 1) + 4) % 4 = 3 | Oeste (O) |
Leste (L) | 1 | D | (1 + 1) % 4 = 2 | Sul (S) |
Leste (L) | 1 | E | ((1 - 1) + 4) % 4 = 0 | Norte (N) |
Sul (S) | 2 | D | (2 + 1) % 4 = 3 | Oeste (O) |
Sul (S) | 2 | E | ((2 - 1) + 4) % 4 = 1 | Leste (L) |
Oeste (O) | 3 | D | (3 + 1) % 4 = 0 | Norte (N) |
Oeste (O) | 3 | E | ((3 - 1) + 4) % 4 = 2 | Sul (S) |
A cada comando, simular a posição que o recruta fica após o mesmo. Por exemplo, se o recruta está virado ao norte e recebe o comando E
, o recruta agora está virado para o oeste. Ao final, ver em qual posição ele ficou depois de todos os comandos.
Last updated