Problema
Ver original (inglês)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
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.
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.