1437 - Esquerda, Volver!
Mais um problema para testar sua criatividade usando operações matemáticas.
Last updated
Mais um problema para testar sua criatividade usando operações matemáticas.
Last updated
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.