All challenges
Easy 0 solved 0% acceptance

Doubling Grains on a Chessboard

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

Problem

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].

Constraints

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

Examples

Example 1
Input:
square = 6

Expected output:
expected = ["32", "18446744073709551615"]
Input:
long long square = 6;

Expected output:
std::vector<std::string> expected = {"32", "18446744073709551615"};
Input:
long square = 6;

Expected output:
string[] expected = new string[] {"32", "18446744073709551615"};

Explanation

The first six counts are 1, 2, 4, 8, 16, 32. The board total is 1 + 2 + … + 2⁶³ = 2⁶⁴ − 1.

Example 2
Input:
square = 1

Expected output:
expected = ["1", "18446744073709551615"]
Input:
long long square = 1;

Expected output:
std::vector<std::string> expected = {"1", "18446744073709551615"};
Input:
long square = 1;

Expected output:
string[] expected = new string[] {"1", "18446744073709551615"};

Explanation

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

References

This challenge is adapted for CodeUtility. Follow the statement and constraints above.

Learn from others

Community solutions

No published solutions yet. Solve this challenge to share the first one.