Se você expressar algum número inteiro positivo em binário sem zeros à esquerda e substituir every 1por a (e every 0por a ), todos os parênteses serão iguais?
Na maioria dos casos, eles não vão. Por exemplo, 9 está 1001em binário, que se torna ())(, onde apenas os dois primeiros parênteses correspondem.
Mas às vezes eles combinam. Por exemplo, 44 está 101100em binário, que se torna ()(()), onde todos os parênteses à esquerda têm um parêntese à direita correspondente.
Escreva um programa ou função que receba um número inteiro positivo de base dez e imprima ou retorne um valor verdadeiro se a versão entre parênteses binários do número tiver todos os parênteses correspondentes. Caso contrário, imprima ou retorne um valor falso .
O código mais curto em bytes vence.
Exemplos de verdade abaixo de 100:
2, 10, 12, 42, 44, 50, 52, 56
Exemplos de falsas abaixo de 100:
1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 45, 46, 47, 48, 49, 51, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99