Todos os desafios
Fácil 0 resolvidos 0% de aceitação

Dobrando Grãos em um Tabuleiro de Xadrez

Calcule a quantidade de grãos em uma casa e o total em todas as 64 casas.

A casa 1 contém um grão. Cada casa seguinte contém o dobro de grãos da casa anterior. Retorne tanto a quantidade na casa solicitada quanto o total nas casas de 1 a 64. Escreva cada quantidade como texto decimal, pois o total do tabuleiro é grande demais para um inteiro assinado de 64 bits.

Implemente chessboard_grains(square).

Entrada

square: A casa solicitada, numerada a partir de 1.

Saída

Retorne duas strings decimais: [quantidade na casa solicitada, total em todas as 64 casas].

Restrições

1 ≤ square ≤ 64. As strings de saída devem conter apenas dígitos decimais, sem vírgulas, espaços ou zeros à esquerda.

Exemplos

Exemplo 1
Entrada:
square = 6

Saída esperada:
expected = ["32", "18446744073709551615"]
Entrada:
long long square = 6;

Saída esperada:
std::vector<std::string> expected = {"32", "18446744073709551615"};
Entrada:
long square = 6;

Saída esperada:
string[] expected = new string[] {"32", "18446744073709551615"};

Explicação

As seis primeiras quantidades são 1, 2, 4, 8, 16, 32. O total do tabuleiro é 1 + 2 + … + 2⁶³ = 2⁶⁴ − 1.

Exemplo 2
Entrada:
square = 1

Saída esperada:
expected = ["1", "18446744073709551615"]
Entrada:
long long square = 1;

Saída esperada:
std::vector<std::string> expected = {"1", "18446744073709551615"};
Entrada:
long square = 1;

Saída esperada:
string[] expected = new string[] {"1", "18446744073709551615"};

Explicação

A primeira casa contém 1 grão. A segunda saída sempre se refere a todas as 64 casas, não apenas ao prefixo solicitado.

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.