Torre de Hanói

No quebra-cabeça da Torre de Hanói, mova uma pilha de discos da primeira torre para a terceira. Apenas um disco pode ser movido por vez, e um disco maior nunca pode ser colocado sobre um disco menor.

Crie uma função que recebe o número de discos e retorna a quantidade mínima de movimentos necessária para concluir o quebra-cabeça.

Exemplos

Program.TowerHanoi(3) ➞ 7

Program.TowerHanoi(5) ➞ 31

Program.TowerHanoi(0) ➞ 0

Notas

discs é um número inteiro não negativo, e o resultado cabe em um long.