Kratos

Finished
1111//
1212
1313/**
14 * @param {number} num
15 * @returns {bigint}
14 * Calculate the number of grains on a specific square of a chessboard.
15 * Each square has twice as many grains as the previous square.
16 *
17 * @param {number} num - The square number (1-64)
18 * @returns {bigint} - The number of grains on that square
19 * @throws {Error} - If the square number is not between 1 and 64
1620 */
1721export const square = (num) => {
18 throw new Error('Remove this line and implement the function');
22 // Validate that num is a number
23 if (typeof num !== 'number') {
24 throw new Error('square must be between 1 and 64');
25 }
26
27 // Validate that num is an integer
28 if (!Number.isInteger(num)) {
29 throw new Error('square must be between 1 and 64');
30 }
31
32 // Edge Case: Square number is less than 1
33 if (num < 1) {
34 throw new Error('square must be between 1 and 64');
35 }
36
37 // Edge Case: Square number is greater than 64
38 if (num > 64) {
39 throw new Error('square must be between 1 and 64');
40 }
41
42 // Calculate grains on square using bit shifting for efficiency
43 // Square n has 2^(n-1) grains
44 return 1n << BigInt(num - 1);
45
46 // Handled Edge Cases: Square number less than 1, square number greater than 64
1947};
2048
2149/**
22 * @returns {bigint}
50 * Calculate the total number of grains on the entire chessboard (64 squares).
51 * This is the sum of a geometric series: 2^0 + 2^1 + ... + 2^63 = 2^64 - 1
52 *
53 * @returns {bigint} - The total number of grains on the chessboard
2354 */
2455export const total = () => {
25 throw new Error('Remove this line and implement the function');
26};
56 // The total number of grains is 2^64 - 1
57 // We calculate this using bit shifting
58 return (1n << 64n) - 1n;
59
60 // Handled Edge Cases: None (this function takes no parameters)
61};
Test NameStatus
grains on square 1
Pass
grains on square 2
Pass
grains on square 3
Pass
grains on square 4
Pass
grains on square 16
Pass
grains on square 32
Pass
grains on square 64
Pass
square 0 raises an exception
Pass
negative square raises an exception
Pass
square greater than 64 raises an exception
Pass
returns the total number of grains on the board
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.