-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathday_18.js
More file actions
36 lines (27 loc) · 1.31 KB
/
day_18.js
File metadata and controls
36 lines (27 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Calculate Grains on a given square on a chessboard
// Instructions
// Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
// There once was a wise servant who saved the life of a prince. The king promised to pay whatever the servant could dream up. Knowing that the king loved chess, the servant told the king he would like to have grains of wheat. One grain on the first square of a chess board, with the number of grains doubling on each successive square.
// There are 64 squares on a chessboard (where square 1 has one grain, square 2 has two grains, and so on).
// Write code that shows:
// How many grains were on a given square
// Total number of grains that can exist on the chessboard given the condition
// NOTE
// Answer sould be a BigInt value
// Both function is given to you separate and you should write code in both functions
const totalGrains = () => {
// Code here
let startingPoint = 0
let totalGrains = BigInt(0)
while(startingPoint < 64){
totalGrains += BigInt(2**startingPoint)
startingPoint++
}
return totalGrains;
}
const grainsOn = (input) => {
// Code here
return BigInt(2**(input-1))
}
console.log(`Grains on 5th square: ${grainsOn(5)}`)
console.log(`Total grains upto 5th square: ${totalGrains()}`)