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

Doubling Grains on a Chessboard

Calculate a square’s grain count and the total on all 64 squares.

O que você vai aprender

  • Compute doubling with powers of two
  • Sum a geometric series
  • Work with values near the 64-bit limit

Problema

Ver tradução

Square 1 holds one grain. Each later square holds twice as many grains as the previous square. Return both the count on the requested square and the total on squares 1 through 64. Write each count as decimal text, because the board total is too large for a signed 64-bit integer.

Implement chessboard_grains(square).

Input

square: The requested square, numbered from 1.

Output

Return two decimal strings: [count on the requested square, total on all 64 squares].

Restrições

1 ≤ square ≤ 64. Output strings contain decimal digits only, with no commas, spaces, or leading zeros.

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

The first six counts are 1, 2, 4, 8, 16, 32. The board total is 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

The first square holds 1 grain. The second output always refers to all 64 squares, not just the requested prefix.

Como abordar

Tente sozinho primeiro e depois abra uma dica de cada vez.

Dica 1

Each square doubles the previous square, so the requested count depends only on its position.

Dica 2

The total across all 64 squares is a geometric progression, and it grows far beyond normal integer limits.

Dica 3

Return both values as plain decimal text, and watch that the first square is one, not zero.

Complexidade esperada

O(1) time, O(1) extra space

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.